3

这是我的代码(test.asm)

预期“数字 = 1337”

输出:“数字 = 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 numpush dword [num]修复它。

4

1 回答 1

3

push num推送num(类似于push msg)的地址,但不推送其中包含的值。

你需要push dword [num]

于 2013-03-06T20:45:22.507 回答