Anda di halaman 1dari 3

5-2-2014

Similar a las variables. Un registro es una zona especial en la memoria de nuestro procesador donde podemos almacenar y consultar un valor nico. Con la salvedad de que existen un nmero limitado de ellos y cada uno tiene un cometido especfico. Destacamos dos funcionalidades de uso comn para este tipo de registro: Almacenar el valor de retorno de una funcin y utilizarlo como contenedor para resolver sencillas operaciones matemticas. Es un registro voltil, dado que su valor no es almacenado. A pesar de que se establezca el valor de retorno de una funcin al contenido del mismo. Suele utilizarse como apoyo para acelerar el clculo de operaciones. Es un registro no voltil. Registro voltil que puede ser utilizado como contador de bucle o contenedor de parmetros que sean pasados a funciones ); Registro voltil usado mayormente como parmetro para funciones. Normalmente se usa tambin para almacenar variables a corto plazo dentro de una funcin. Registro no voltil que normalmente es usado como puntero. Es utilizado por aquellas funciones que requieren un origen y un destino para los datos que se utilizan. Apuntando este al origen en todo momento. Al igual que el registro ESI, es no voltil y usado como puntero, a diferencia de que este apunta al destino siempre. Registro no voltil con dos usos comunes segn el compilador que utilicemos, as puede desempear el papel de un registro como otro cualquiera o ser el puntero al marco de pila. Almacena un puntero a la parte inferior de la pila. Tras ejecutar una funcin el valor que tena el registro al principio debe de coincidir con el asociado tras la funcin El puntero de instrucciones es un registro de 32 bits llamado EIP, el cual mantiene el offset de la prxima instruccin a ejecutar. El offset (desplazamiento de direccin de memoria) siempre es relativo a la base del segmento de cdigo (CS). Estos registros de 32 bits a su vez pueden ser divididos en registros de menor tamao (16 bits, y 8 bits, distinguiendo la parte superior e inferior).

pg. 1

Por tanto tenemos: 8 registros de 32 bits: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP EIP 8 registros de 16 bits: AX, BX, CX, DX, SI, DI, BP, SP, IP 8 registros de 8 bits: AH, AL, BH, BL, CH, CL, DH, D

Se puede trabajar solamente con partes del registro por ejemplo AX representa una parte de 8 bits de tamao de Accumulator Register, pero si quisiramos trabajar con los 32 bits del registro agregamos la letra "E" al inicio del nombre ("EAX") y para registros de 64 bits se utilizara la letra "R"("RAX")
Registro RAX Uso Acumulador Detalle Operando en sumas, multiplicaciones, divisiones cadenas, comparaciones e intercambios, traduccin en tablas y operaciones de E/S. Con RDX mantiene operandos de doble precisin. Generacin de direcciones en modo 16 bits ndice de bit en operaciones de rotacin y cambio. Contador de iteraciones en ciclos. Saltos condicionales si es Zero Operando en multiplicaciones y divisiones Direccin en memoria fuente en operaciones de cadena. ndice en direcciones de 16 bits Direccin en memoria destino en operaciones de cadena. ndice en direcciones de 16 bits Direccin en memoria del apuntador base a la pila Direccin en memoria del tope de la pila Sin usos implcitos Partes EAX, AX, AL

RBX RCX

Base Contador

EBX, BX, BL ECX, CX, CL

RDX RSI RDI RBP RSP R8-R10

Direccin E/S ndice Fuente ndice Destino Apuntador Base Apuntador Pila

EDX, DX, DL ESI, SI, SIL EDI, DI, DIL EBP, BP, BPL ESP, SP, SPL R8D-R10D, R8W-R10W, R8L-R10L R11D, R11W, R11L R12D-R15D, R12W-R15W, R12L-R15L

R11 R12-R15

Mantiene valor de banderas en SYSCALL y SYSRET Sin usos implcitos.

pg. 2

Anda mungkin juga menyukai