出力の一部がさまざまな段階で増加している数値である 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 の right==>left プッシュ パターンを考慮すると、分母は同じになると思います。
私は、nasm を使用してアセンブルし、gcc をリンクする x86 プロセッサを搭載した Linux を使用しています。