我正在开发一个 x86 ASM 程序,其中部分输出是我在各个阶段一直在递增的数字。输出数字几乎不是我所期望的......无法追踪错误。
初始化如下:
SECTION .data
...
numInc: db 0
numDec: db 0
numSum: db 0
增量如:
inc dword [numInc]
inc dword [numSum]
push stringOpt3
call printf
add esp, 4
打印如下:
push dword [numInc]
push dword [sum]
push dword [numDec]
push dword [sum]
push outputString
call printf
add esp,20
其中 outputString 是:(自然也在 .data 部分中)
outputString: db `\nSet{1}: %5d/%d\nSet{2}: %5d/%d\n`,10,0
输出类似于:
Set{1}: 134521233/514
Set{2}: 134521233/131584
所以,我期待结果在 0/3 1/3 ... 附近!另外,考虑到 printf 的右==>左推模式,我希望分母是相同的。
我在带有 x86 处理器的 Linux 上,使用 nasm 进行组装和 gcc 进行链接。