vmstat ver uso sysstat comando assembly x86 disassembly

assembly - ver - sysstat linux



Comando SAR en ensamblaje X86 con un parĂ¡metro (2)

En un programa desensamblado que estoy analizando, encontré el comando

sar %eax

¿Qué hace esto? Sé que sar con dos argumentos realiza un cambio a la derecha, pero no puedo encontrar lo que significa con un solo parámetro.

Este programa fue compilado para un procesador Intel x86.


Cuando solo hay un operando, el cambio implícito es 1.

Asi que....

SAR %EAX implica firmado %EAX >> 1

para eso

SAR %eax = SAR $1, %eax

He probado con éxito este análisis de algunos códigos en GDB.


Parece que el disimulador se utilizó de manera corta para SAR EAX,1 que tiene un código de operación de 0xD1F8 . cuando lo inmediato no es 1, también conocido como SAR EAX,xx , el código de operación es 0xC1F8 xx , consulte la referencia de instrucciones Intel, vol. 2B, 4-353.