重複の可能性:
LEA命令の目的は何ですか?
LEA命令?
だから私はクラスのバイナリ爆弾の割り当てに取り組んでいます(プログラムのアセンブリコードをステップスルーし、「爆弾」をデコードするためのパスフレーズを見つける必要があるフェーズがたくさんあります)。
leaコマンドがわからないため、現在のフェーズを完了できません。私はそれが算術に一般的に使用されていることを読みました、しかし私はそれがどのようにそれをするのか理解していません。
私が特に見ているコマンドは
lea -0x18(%ebp), %ebx
lea -0x8(%ebp), %esi
続いて
mov -0x4 (%ebx), %eax
add -0x8(%ebx), %eax
次の行では、eaxとebxが比較され、等しい場合はプログラムが続行され、そうでない場合は爆弾が爆発します。
このフェーズについては、最初の2つが0と1である6つの数値が必要であることを十分に理解しました。その後、シーケンスの残りの部分が正しいかどうかを判断するためにいくつかの操作を行います(leaコマンドが次の番号を見つけるためにデコードする必要があります)。
今私が見つけられなかったのは、特に-0x18が何を指しているのかということです。負の符号は何をしますか?それは引き算を示していますか?ebpの18バイト前に見えますか?
ここで助けてくれてありがとう。