我目前正在使用 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 修改它?