0

我目前正在使用 Assembly 中的 nasm 程序,并且我正在尝试编写一个程序来确定给出的第一个命令行 arg 是否是闰年。我已经成功处理了参数处理,并且当用户输入除一个命令行 arg 之外的任何内容时会显示正确的消息,但现在我对如何“访问”提供的年份并用数字对其进行修改感到困惑。到目前为止,这是我的代码

        global  main
        extern  puts
        extern printf
        extern atoi


        section  .text

main:
        push    r13
        push    r14
        sub     rsp, 8


        cmp     rdi, 2
        jne     error1              ; jump if aguments != 1
        jmp     done
error1:
        mov     edi, badArgs
        call    puts
        jmp     done  

done:
        pop     r14
        pop     r13
        add     rsp, 8
        ret

badArgs:
       db      "Requires exactly one argument", 5, 0

有问题的行出现在我检查错误参数的 jne 行之后。现在我想隔离参数(我相信它位于 rsi 寄存器中)并将其修改为数字 4 以开始我的闰年检查。如何隔离这个值并用 4 修改它?

4

0 回答 0