アセンブリで次のコードを分析しようとしています。
sub $48, %esp
mov $56, 44(%esp)
mov $3, 40(%esp)
mov $0, 36(%esp)
mov 44(%esp), %eax
mov %eax, 32(%esp)
jmp .L2
.L3:
mov 32(%esp), %eax
sub 40(%esp), %eax
mov %eax, 32(%esp)
add $1, 36(%esp)
.L2:
mov 32(%esp), %eax
cmp 40(%esp), %eax
ja .L3
mov 36(%esp),%eax
mov 32(%esp),%edx
私の理解が明確であれば、最初の 6 行は正常に呼び出され、プログラムは .L2: にジャンプしてコードを実行します。R[eax] == R[40 + R[esp] の場合、コードは .L3 に移動します。
私の質問は、この後どうなるかです。.L3 が実行され、コードが .L2 の直後にあるためにコードが .L2 に移動しますか、それとも .L3 の実行後に最後の 2 行に自動的にジャンプしますか?
さらに、アセンブリ コードの読み取りに関するいくつかのヒントを使用できます。eax と edx の最終的な値を見つけようとしています。
ありがとうございました