使用NASM在64位模式下不支持pop指令?

时间:2012-06-08 17:29:40

标签: assembly 32bit-64bit nasm pop

我正在使用NASM following this tutorial进行更深入的问候世界(第4节)。本教程基本上教您如何处理命令行输入。
这是相关代码的片段:

section .text
        global _start

_start:
        pop     ebx     ; arg count
        pop     ebx     ; arg[0] the program name
        pop     ebx     ; arg[1-n] the remainder of the args
                        ; must each be indiviually popped

使用error: instruction not supported in 64-bit mode编译期间代码出错,参考上面的3个弹出指令。 Upon viewing the docs似乎此代码仅适用于32位系统。

是否有64位pop指令?有没有人使用我可以查看的pop 64位教程?

2 个答案:

答案 0 :(得分:20)

是的,64位pop指令是...... POP。 :-)你需要使用它来对抗64位寄存器(如rbx)。

答案 1 :(得分:-1)

基本上,您可以通过将eax替换为rax来将其转换为64位(所有其他寄存器也是如此)