28

私が分析している逆アセンブルされたプログラムで、コマンドを見つけました

sar %eax

これは何をしますか?引数が 2 つあると右シフトが実行されることはわかっていsarますが、パラメーターが 1 つだけの場合はそれが何を意味するのかわかりません。

このプログラムは、Intel x86 プロセッサ用にコンパイルされています。

4

2 に答える 2

29

SAR EAX,1オペコードが。の速記を使用した逆アセンブラーのように見え0xD1F8ます。イミディエートが1でない場合、別名SAR EAX,xx、オペコードはです0xC1F8 xx。Intel命令リファレンス、Vol。2B、4-353。

于 2012-10-10T07:29:35.557 に答える
6

オペランドが 1 つしかない場合、暗黙のシフトは 1 です。

そう....

SAR %EAX署名されていることを意味します%EAX >> 1

したがって、

SAR %eax = SAR $1, %eax

GDB でいくつかのコードを分析して、これを証明することに成功しました。

于 2017-10-07T22:42:23.970 に答える