0からN-1までのすべての整数を出力するアセンブリでforループを作成しようとしました。なんらかの理由で、それが壊れて、無限ループが作成されます。なぜどんなアイデア?私はEAX
の内容を破壊するのVisual Studio 2013 MASMアセンブリ言語でのループ
.data
x DWORD 0
y DWORD 0
.code
main:nop
invoke version
invoke readInteger
add x, eax
cmp eax, y
je done
increase:
invoke writeInteger, y
inc y
cmp y, eax
jg increase
done:
invoke writeInteger, x
invoke ExitProcess,0
end main
使用VSのデバッガシングルステップへとレジスタを見て、あなたはなぜ知っているだろう。しかしおそらく 'writeInteger' clobbers' eax'は、ほとんどの呼び出し規則では普通です。 –