私が分析している逆アセンブルされたプログラムで、コマンドを見つけました
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 でいくつかのコードを分析して、これを証明することに成功しました。