x86アセンブリを使った私の物語は続きます。私はこのコードで無限ループに入り、少し戸惑っています。
movl $1, %ecx
movl $4, %edi
do_loop:
cmpl %edi, %ecx
je do_exit
.........
do_stuff
.........
incl %ecx
jmp do_loop
do_exit:
do_exitへのジャンプを期待しています: %ecxが4に達すると、反復ごとに増分されるため
x86アセンブリを使った私の物語は続きます。私はこのコードで無限ループに入り、少し戸惑っています。
movl $1, %ecx
movl $4, %edi
do_loop:
cmpl %edi, %ecx
je do_exit
.........
do_stuff
.........
incl %ecx
jmp do_loop
do_exit:
do_exitへのジャンプを期待しています: %ecxが4に達すると、反復ごとに増分されるため
デバッガーはありませんか?do_stuffは%ediを変更しますか?do_stuffをコメントアウトしてみてください。
do_exitの後にブランクが続くかどうかはわかりません。また、アセンブリコードをどのように実行しているかわかりません...
ただし、do_exitの後に次を追加してみてください。
離れる
ret
他の人が述べているように、のレジスタの使用には注意してdo_stuff
ください。そして、あなたが探している本物は、規約、特にこの行を 呼び出すことです:
レジスタEAX、ECX、およびEDXは、関数で使用できます。