Ensamblador 80x86

Solo disponible en BuenasTareas
  • Páginas : 22 (5345 palabras )
  • Descarga(s) : 7
  • Publicado : 8 de agosto de 2009
Leer documento completo
Vista previa del texto
Ensamblador 80x86
1. 2. 3. 4. 5. 6. 7. Introducción Registros internos Almacenamiento de datos Modos de direccionamiento Juego de Instrucciones Etiquetas, cometarios y directivas Problemas

1. Introducción
El lenguaje ensamblador como cualquier lenguaje de programación es un conjunto de palabras que le indican al ordenador lo que tiene que hacer. Sin embargo la diferencia fundamental es quecada instrucción escrita en lenguaje ensamblador tiene una correspondencia exacta con una operación en el procesador. Por lo que son operaciones muy sencillas tales como: “Cargar 32 en el registro BX” o “Transferir el contenido del registro CL al CH”. Así pues, las palabras del lenguaje ensamblador son nemotécnicos que representan al código máquina, lenguaje que entiende el procesador.

1.1.Tamaño de los datos
En el 80x86 se definen los siguientes tamaños de datos:

Fig. 1: Tipos de datos que puede manejar el procesador

2. Registros internos
El 80x86 dispone de 8 registros de propósito general (4 de datos y 4 índice), 6 registros de segmento, 1 registro de índice de programa y 1 registro de estado.

1

Ensamblador 80x86

Fig. 2: Registros internos del 80x86

2.1. Registrosde datos
Los registros de datos son de 32 bits, aunque están divididos, lo que permite su acceso a 8 bits o a 16 bits. Estos registros son de propósito general aunque todos tienen alguna función por defecto. EAX (acumulador) se usa para almacenar el resultado de las operaciones, es al único registro con el que se puede hacer divisiones y multiplicaciones. Puede ser accedido en 8 bits como AH yAL; y a 16 bits como AX. |-------AX-------| EAX: AH AL

EBX (registro base) almacena la dirección base para los accesos a memoria. También puede accederse como BH y BL, o BX de la misma forma que el anterior. ECX (contador) actúa como contador en los bucles de repetición. CL (parte baja del registro) almacena el desplazamiento en las operaciones de desplazamiento y rotación de múltiples bits. EDX(datos) es usado para almacenar los datos de las operaciones. También es accesible en 8, 16 y 32 bits.

2.2. Registros de segmento
Los registros de segmento son de 16 bits y contienen el valor de segmento. El uso de segmentos para dividir el espacio de la memoria es una reminiscencia del procesador 8086, el primero de la familia. En los procesadores 80386 y posteriores los registros desegmentos son usados de manera automática por el procesador, sin que el programador deba preocuparse por el valor que en cada momento tiene, salvo para algunas instrucciones especiales. CS (segmento de código) contiene el valor de segmento donde se encuentra el código. Actúa en conjunción con el registro EIP para obtener la dirección de memoria que contiene la próxima instrucción. Este registro esmodificado por las instrucciones de saltos lejanos.

2

Departamento de Arquitectura y Tecnología de Computadores: Universidad de Sevilla

DS (segmento de datos) contiene el segmento donde están los datos. ES (segmento extra de datos) es usado para acceder a otro segmento que contiene más datos. SS (segmento de pila) contiene el valor del segmento donde está la pila. Se usa conjuntamente con elregistro ESP para obtener la dirección donde se encuentra el último valor almacenado en la pila por el procesador. FS, GS: se usan como registros de segmento adicionales

2.3. Registros de índice
Estos registros son de 32 bits y son usados como índices por algunas instrucciones, pueden ser accedidos solo a 16 bits. También pueden ser usados como operandos. ESI (índice de origen) almacena eldesplazamiento del operando de origen en memoria en algunos tipos de operaciones (operaciones con operandos en memoria). EDI (índice de destino) almacena el desplazamiento del operando de destino en memoria en algunos tipos de operaciones (operaciones con operandos en memoria). ESP (índice de pila) almacena el desplazamiento dentro del segmento de pila, y apunta al último elemento introducido en la...
tracking img