結果
問題 |
No.3259 C++ → Rust → Python
|
ユーザー |
|
提出日時 | 2025-09-06 13:31:39 |
言語 | Assembler (nasm 2.16.03) |
結果 |
AC
|
実行時間 | 1 ms / 2,000 ms |
コード長 | 1,919 bytes |
コンパイル時間 | 388 ms |
コンパイル使用メモリ | 7,972 KB |
実行使用メモリ | 7,716 KB |
最終ジャッジ日時 | 2025-09-06 13:31:43 |
合計ジャッジ時間 | 1,023 ms |
ジャッジサーバーID (参考情報) |
judge / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
ソースコード
bits 64 section .note.GNU-stack section .data ; msg db "Hello, world!", 10 ; len equ $ - msg section .text ;char read_char(void) read_char: xor rax, rax xor rdi, rdi lea rsi, [rsp-8] mov rdx, 1 syscall cmp rax, 1 jne read_char_error mov al, [rsp-8] ret read_char_error: mov rax, -1 ret ;int read_int(void) read_int: push rbp mov rbp, rsp sub rsp, 16 mov [rbp-8], rbx ;RBXを一時的な数値の置き場として使うので元の値を覚えておく xor ebx, ebx read_int_loop: call read_char cmp eax, '0' jl read_int_end cmp eax, '9' jg read_int_end sub eax, '0' imul ebx, 10 add ebx, eax jmp read_int_loop read_int_end: mov eax, ebx mov rbx, [rbp-8] leave ret ;void print_char(char) ;RDIにcharが入っている print_char: mov rax, 1 mov [rsp-8], edi mov rdi, 1 lea rsi, [rsp-8] mov rdx, 1 syscall cmp rax, 1 jne print_char_error ret print_char_error: mov rax, -1 ret ;void println(void) println: mov edi, `\n` call print_char ret ;void print_int(int) print_int: mov eax, edi mov r8, rsp mov esi, 10 print_int_loop: cdq idiv esi ;商:EAX,余り:EDX dec rsp mov [rsp], dl add [rsp], byte '0' cmp eax, 0 jne print_int_loop ;出力 mov rax, 1 mov rdi, 1 mov rsi, rsp mov rdx, r8 sub rdx, rsp syscall mov rsp, r8 ret global _start _start : push rbp mov rbp, rsp sub rsp, 32 %define ans [rbp-8] %define l [rbp-16] %define r [rbp-24] call read_int mov l, eax call read_int mov r, eax mov eax, 0 mov ans, eax mov eax, r cmp eax, 296 jl skip mov eax, l cmp eax, 295 jg skip mov eax, ans add eax, 1 mov ans, eax skip: mov eax, r cmp eax, 417 jl skip2 mov eax, l cmp eax, 416 jg skip2 mov eax, ans add eax, 1 mov ans, eax skip2: mov edi, ans call print_int call println ;終了 mov rax, 60 xor rdi, rdi syscall