我有一个简单的程序,它简单地向shell返回一个值:
SECTION .data
value EQU 10
SECTION .text
global main
main:
mov eax, value
ret
这很好用(运行echo $?
时显示10)。但我真正想做的是用第二行代替:
value DD 10
我认为应该工作,但不是吗?它给了我废话作为回报值。
答案 0 :(得分:1)
我将假设您正在使用NASM。因此,如果您已将value
声明为value DD 10
,则应使用:
mov eax,[value]
获取value
的值(即10)。指令mov eax,value
会为您提供value
的地址。
根据您使用的汇编程序,语法略有不同。在MASM / TASM中,语法mov eax,value
和mov eax,[value]
表示相同的内容(它们都获得value
的值)。