这是我的代码(test.asm)
预计“num = 1337”
输出:“num = 4199373”
问题:如何修复它。
意图:对汇编语言的好奇心,而不是作业。
; nasm -fwin32 test.asm
; gcc test.obj -o test
extern _printf
global _main
section .text
_main:
push num
push msg
call _printf
add esp, 8
ret
msg db 'num = %i', 0xa, 0
num dd 1337
将push num
更改为push dword [num]
修正了它。
答案 0 :(得分:3)
push num
推送num
的地址(类似于push msg
),但不包含其中包含的值。
您需要push dword [num]
。