Estructura de computadores
Estructura de computadores
Estructura de computadores
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CC-BY-SA • PID_00178132 18 Programación en ensamblador (x86-64)<br />
dirección. Este proceso es gestionado por el hardware <strong>de</strong>l procesador y es transparente<br />
para el programador.<br />
Tamaño <strong>de</strong> los <strong>de</strong>splazamientos y <strong>de</strong> los valores inmediatos<br />
En el modo <strong>de</strong> 64 bits los <strong>de</strong>splazamientos utilizados en los direccionamientos<br />
relativos y los valores inmediatos son siempre <strong>de</strong> 32 bits, pero vienen exten-<br />
didos a 64 bits manteniendo el signo.<br />
Hay una excepción a este comportamiento: en la instrucción MOV se permite<br />
especificar un valor inmediato <strong>de</strong> 64 bits.<br />
1.2.2. Registros<br />
Los procesadores <strong>de</strong> la arquitectura x86-64 disponen <strong>de</strong> un banco <strong>de</strong> registros<br />
formado por registros <strong>de</strong> propósito general y registros <strong>de</strong> propósito específico.<br />
Registros <strong>de</strong> propósito general hay 16 <strong>de</strong> 64 bits y <strong>de</strong> propósito específico hay<br />
6 registros <strong>de</strong> segmento <strong>de</strong> 16 bits, también hay un registro <strong>de</strong> estado <strong>de</strong> 64<br />
bits (RFLAGS) y un registro contador <strong>de</strong> programa también <strong>de</strong> 64 bits (RIP).<br />
Registros <strong>de</strong> propósito general<br />
Son 16 registros <strong>de</strong> datos <strong>de</strong> 64 bits (8 bytes): RAX, RBX, RCX, RDX, RSI, RDI,<br />
RBP, RSP y R8-R15.<br />
Los 8 primeros registros se <strong>de</strong>nominan <strong>de</strong> manera parecida a los 8 registros <strong>de</strong><br />
propósito general <strong>de</strong> 32 bits disponibles en la arquitectura IA-32 (EAX, EBX,<br />
ECX, EDX, ESI, EDI, EBP y ESP).<br />
Los registros son accesibles <strong>de</strong> cuatro maneras diferentes:<br />
1) Como registros completos <strong>de</strong> 64 bits (quad word).<br />
2) Como registros <strong>de</strong> 32 bits (double word), accediendo a los 32 bits <strong>de</strong> menos<br />
peso.<br />
3) Como registros <strong>de</strong> 16 bits (word), accediendo a los 16 bits <strong>de</strong> menos peso.<br />
4) Como registros <strong>de</strong> 8 bits (byte), permitiendo acce<strong>de</strong>r individualmente a uno<br />
o dos <strong>de</strong> los bytes <strong>de</strong> menos peso según el registro.<br />
El acceso a registros <strong>de</strong> byte tiene ciertas limitaciones según el registro. A con-<br />
tinuación se presenta la nomenclatura que se utiliza según si se quiere acce<strong>de</strong>r<br />
a registros <strong>de</strong> 8, 16, 32 o 64 bits y según el registro.