AMD64 ATT表記で逆コンパイルについてなのですが
main関数から高級言語を予想する問題について
ループ個所において
4003ee: 89 c1 mov %eax,%ecx
4003f0: 48 ff c0 inc %rax
4003f3: 80 7c 02 ff 00 cmpb $0x0,-0x1(%rdx,%rax,1)
4003f8: 75 f4 jne 4003ee <main+0x2e>
1 %eaxを%ecxへ()
2 %raxをインクリメント
3 0と(rdx - 1 + (edx * 1))を比較 zfフラグ決定
4 zf=0でループ上へ だと解釈しているのですが、
%rdxにこれより前に64bit引数で不明な数値が入っており
1の段階でeaxには0がはいってます。(たぶん)
そうするとこのループは1,2が3に影響を及ぼさないと考えてしまいました。
しかしそうするとrdxの32bitから64bitには0でrdx=edxと考えているのですが、間違ってそうでしょうか・・・。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/18 01:02