我正在一个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的右推模式,我希望分母是相同的。
我在Linux上使用一个x86处理器使用nasm来汇编和gcc链接。
谢谢,已经工作得更好!关于印刷输出的任何想法“misordering”? – d0rmLife 2013-05-13 20:53:38
@ d0rmLife,排序实际上看起来和我预期的一样。推入顺序:numInc,sum,numDec,将“sum”映射到格式字符串中的两个“%5d”。 – scottt 2013-05-13 20:58:02
是的,我同意,但出于某种原因,我必须扭转输出的四个顺序的顺序,以达到预期的效果......! – d0rmLife 2013-05-13 21:00:49