21

我正在按照本教程(第 4 节)使用 NASM 开发更深入的 hello world。本教程主要教您如何处理命令行输入。
这是有问题的代码片段:

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 条弹出指令,编译过程中出现代码错误。查看文档后,似乎此代码仅适用于 32 位系统。

有64位pop指令吗?有没有人有pop我可以看的64位教程?

4

2 回答 2

26

是的,64 位pop指令是……POP。:-) 您需要将它用于 64 位寄存器(例如rbx)。

于 2012-06-08T19:01:49.317 回答
0

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

于 2020-01-04T03:57:17.060 回答