3 votos

Entender el byte(s) nop

Ok, así que estaba leyendo a través de la AMD64 manuel y saber que nop es realmente un xchg eax, eax, miré a la xchg y encontré algo muy interesante, que parece un byte puede ser codificado en la instrucción para la especificación de los registros (disculpas estoy en mi iPod): la imagen.

Así que lo que estoy preguntando es ¿cómo funciona el procesador saber si hay un byte después de trabajar con o es que ese registro tiene que ser de tipo rAX provocando que en realidad es todavía la de un byte 0x90

4voto

Ravi Puntos 11

Me miré en el xchg y encontré algo muy interesante, que parece un byte puede ser codificado en la instrucción para la especificación de los registros

Sí, así es como la mayoría de los x86 instrucciones de trabajo. Las instrucciones que se obtienen ya sea de 32 o de 64 bits (longitud de palabra de la máquina), y no en bytes a la vez.

La especificación de un XCHG de rAX con rAX (donde rAX es EAX en un equipo de 32 bits, y RAX en una máquina de 64 bits) será 0x90, ya que el registro mux código para rAX es 0x00 (efectivamente un ciclo de operación que no hacer nada). Del mismo modo, la instrucción XCHG rBX, rAX reunirá a 0x93 (el mux código de rBX ser 0b011).

El código de operación de codificación debe ser listados en alguna otra parte en el manual, o usted puede mirar en un x86 opcode mapa (que ayuda a entender cómo está todo mux juntos). Usted puede encontrar uno en la Intel 64 e IA-32 Arquitecturas de Software Desarrollador de Manuales (Volumen 2, Apéndice A. 3).

Así que lo que estoy preguntando es ¿cómo funciona el procesador saber si hay un byte después de trabajar con o es que ese registro tiene que ser de tipo rAX provocando que en realidad es todavía la de un byte 0x90

Aquí, es todo lo contrario. Para el modo de 64 bits, no es en realidad un prefijo en la instrucción de la palabra para indicar que (REX prefijo). El procesador sabe lo que busca en función de la presencia o ausencia de la REX prefijo - y en la ausencia de la enseñanza es todavía sólo 0x90.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: