私が分析している逆アセンブルされたプログラムで、コマンドを見つけました
sar %eax
これは何をしますか?引数が 2 つあると右シフトが実行されることはわかっていsar
ますが、パラメーターが 1 つだけの場合はそれが何を意味するのかわかりません。
このプログラムは、Intel x86 プロセッサ用にコンパイルされています。
私が分析している逆アセンブルされたプログラムで、コマンドを見つけました
sar %eax
これは何をしますか?引数が 2 つあると右シフトが実行されることはわかっていsar
ますが、パラメーターが 1 つだけの場合はそれが何を意味するのかわかりません。
このプログラムは、Intel x86 プロセッサ用にコンパイルされています。
SAR EAX,1
オペコードが。の速記を使用した逆アセンブラーのように見え0xD1F8
ます。イミディエートが1でない場合、別名SAR EAX,xx
、オペコードはです0xC1F8 xx
。Intel命令リファレンス、Vol。2B、4-353。
オペランドが 1 つしかない場合、暗黙のシフトは 1 です。
そう....
SAR %EAX
署名されていることを意味します%EAX >> 1
したがって、
SAR %eax = SAR $1, %eax
GDB でいくつかのコードを分析して、これを証明することに成功しました。