隔离第一个命令行arg程序集并对其进行修改

时间:2016-04-27 04:19:22

标签: linux assembly nasm x86-64 mod

我目前正在使用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行之后,它会检查错误的args。现在我想隔离参数(我相信它位于rsi寄存器中)并用数字4修改它以开始我的闰年cheks。如何隔离此值并将其修改为4?

0 个答案:

没有答案