01.05.2013 Views

Estructura de computadores

Estructura de computadores

Estructura de computadores

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!