Professional Documents
Culture Documents
Microprocesador (8086)
Microprocesadores
Contenidos
Arquitectura Von Newman Arquitectura Harvard.
Modos de Direccionamiento
Microprocesadores Ing. Carlos Ortega H. 2
La CPU accede a una nica memoria que tiene zonas separadas de cdigo y datos. Suelen ser CISC El formato de instrucciones es de longitud variable y el juego de instrucciones es ms completo. Hoy se tiende a un ncleo RISC (Reduced Instruction Set Computing), y sobre ste, se implementa las instrucciones complejas (CISC) mediante microinstrucciones.
Microprocesadores Ing. Carlos Ortega H. 3
Arquitectura Harvard
- Son independientes la memoria de instrucciones y la memoria de datos y cada una dispone de su propio sistema de buses para el acceso, lo que permite optimizar sus caractersticas propiciando el paralelismo. - El formato de instrucciones es de longitud fija y el juego es reducido.
Microprocesadores Ing. Carlos Ortega H. 4
Arquitectura Harvard
En una arquitectura Harvard la instruccin es buscada de la memoria de programa en un solo ciclo.
Mientras la memoria de programa est siendo accesada, la memoria de datos puede ser leda o escrita.
Esta arquitectura de buses separados permiten que una instruccin pueda ser ejecutada mientras la prxima es buscada.
Los procesadores modernos usan la tcnica de tuberas (pipeline) para procesar instrucciones, que consiste en la segmentacin del procesador descomponindolo en etapas, que operan paralelamente para poder procesar varias instrucciones a la vez.
Microprocesadores
Se visualiza a la memoria como dividida en segmentos de memoria y a cada segmento lo visualiza como un arreglo lineal de localidades de memoria de un byte. Cada segmento tiene una direccin llamada direccin de segmento.
Este esquema de memoria es usado por lo general en microprocesadores con capacidad de direccionamiento que excede a los 64 KB. Uno de estos procesadores es el procesador 8086 de Intel.
Microprocesadores Ing. Carlos Ortega H. 6
Microprocesadores
Microprocesadores
SI (ndice fuente): Contiene el desplazamiento con respecto al segmento de datos de un elemento de un arreglo o cadena.
DI (ndice destino): Contiene el desplazamiento con respecto al segmento extra de un elemento de una cadena o arreglo. IP (Apuntador de instrucciones): Contiene siempre el desplazamiento con respecto al segmento de cdigo de la localidad de memoria que contiene la siguiente instruccin que va a ejecutar el microprocesador.
Microprocesadores
10
Registros de Segmentos
CS (Cdigo): Tiene la direccin lgica del segmento en que se encuentra el cdigo de un programa. Si el cdigo ocupa ms de un segmento, contiene la direccin lgica de uno de los segmentos. DS (Datos): Tiene la direccin lgica del segmento en que se encuentran los datos estticos de un programa. Si los datos ocupan ms de un segmento, contiene la direccin lgica de uno de los segmentos. ES (Extra): Este registro tambin tiene la direccin lgica de uno de los segmentos en que se encuentran los datos estticos de un programa. Este registro se utiliza en ciertas operaciones del microprocesador para el manejo de cadenas. SS (Pila): Tiene la direccin lgica del segmento en que se encuentran la pila del sistema. La pila no puede ser mayor a un segmento.
Microprocesadores Ing. Carlos Ortega H. 11
Registro Banderas
C (Acarreo): Indica un acarreo despus de una suma o un prstamo despus de una resta. P (Paridad): 0 = Impar y un 1 = par. A (Acarreo auxiliar): Esta bandera slo se utiliza en las operaciones daa y das Z (Cero): Z = 1 si el resultado de una operacin aritmtica o lgica es cero y si Z = 0, el resultado no es cero. S (Signo): Si S = 1, el resultado es negativo. Si S = 0, el resultado es positivo. O (Sobreflujo): Es una condicin que ocurre cuando se suman o se restan nmeros con signo.
Microprocesadores Ing. Carlos Ortega H. 12
Registro Banderas
T (Trampa): Activa, si se pone a 1, o desactiva, si se pone a 0, el modo de ejecucin paso a paso. Este modo es utilizado por los depuradores para ejecutar las instrucciones una a la vez y permitir observar el efecto de la instruccin sobre los registros y la memoria.
I (Interrupcin): Habilita, si se pone a 1, o deshabilita, si se pone a 0, las interrupciones al microprocesador. El estado de esta bandera se controla con las instrucciones sti (habilitar interrupciones) y cli (desactivar las interrupciones). D (Direccin): Controla la seleccin de autoincremento o autodecremento de los registros DI o SI durante las instrucciones de cadenas y arreglos. Si D = 1 hay autodecremento en los registros y si D = 0 hay autoincremento. El estado de esta bandera se controla con las instrucciones std (habilitar direccin) y cld (desactivar direccin).
Microprocesadores Ing. Carlos Ortega H. 13
Lenguaje de Programacion
Es un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones, y utilizado para controlar el comportamiento fsico y lgico de una mquina. Lenguajes de bajo nivel Son lenguajes de programacin que se acercan al funcionamiento de una computadora. El lenguaje de ms bajo nivel es, por excelencia, el cdigo mquina. A ste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros y memoria de la computadora de forma directa. Lenguaje ensamblador El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informticos, y constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura de computadoras legible por un programador.
Microprocesadores Ing. Carlos Ortega H. 14
Son los campos de la proposicin.Los campos se separan por caracteres blancos: caracteres de espacio y/o de tabulacin. Todos los campos son opcionales, pero el campo operandos slo pueden estar presente si existe el campo instruccin|directiva.
Microprocesadores
16
Microprocesadores
17
TINY: para programa con un solo segmento para datos y cdigo (tipo .COM)
SMALL: para programas con un solo segmento de datos (64K, incluida la pila) y otro de cdigo (64K) LARGE: varios segmentos de datos y cdigo (1Mb para cada uno). MEDIUM: Varios segmentos de cdigo y 1 de datos. COMPACT: 1 segmento de cdigo y varios de datos. Con esta directiva se preparan todos los segmentos y el ensamblador reconoce, a partir de este momento, las directivas .DATA, .STACK y .CODE.
Microprocesadores Ing. Carlos Ortega H. 18
Ejemplo:
INI_CONT: MOV CX, DI ; inicia el contador
Microprocesadores Ing. Carlos Ortega H. 19
Modos de Direccionamientos
Los modos de direccionamiento indican la manera de obtener los operandos y son:
Direccionamiento de Registro Direccionamiento Inmediato Direccionamiento Directo Direccionamiento Indirecto. Direccionamiento Indirecto con Indice o Indexado Direccionamiento con base e indice o Indexado a base El tipo de direccionamiento se determina en funcin de los operandos de la instruccin.
Microprocesadores
20
Modos de Direccionamientos
La instruccin MOV realiza transferencia de datos desde un operando origen a un operando destino. Su formato es el siguiente: MOV destino, origen Direccionamiento de registro Transfiere un byte o palabra desde un registro fuente hasta un registro destino.
NOTA! No se permite el acceso entre registros de segmentos ni de distintos tamaos. MOV AX,CX ;transfiere el contenido de CX en AX
Microprocesadores Ing. Carlos Ortega H. 21
Modos de Direccionamientos
Direccionamiento inmediato
Transfiere un byte o palabra de datos inmediatos hacia el operando destino. Este modo es usado para inicializar registros o localidades de memoria y para operar sobre ellos con valores constantes de datos.
MOV AX,0ABCDh ;carga en AX el valor 0ABCDh.
Microprocesadores
22
Modos de Direccionamiento
Direccionamiento directo Cuando el operando es una direccin de memoria. sta puede ser especificada con su valor entre [ ], o bien mediante una variable definida previamente (Se ver ms adelante).
Ejemplo: MOV AL,[1234H]; almacena en AL el contenido de la direccin de memoria DS:1234.
Microprocesadores
23
Modos de Direccionamiento
Direccionamiento indirecto Cuando el operando esta en memoria en una posicin contenida en un registro (BX, BP, SI o DI). MOV AX,[BX] ; almacena en AX el contenido de la direccin de memoria DS:[BX].
Microprocesadores
24
Modos de Direccionamiento
Direccionamiento Indirecto con Indice o Indexado
El operando se encuentra en una direccin determinada por la suma de un registro de segmento*16, un registro de ndice, SI o DI y un desplazamiento de 8 16 bits.
Ejemplos:
MOV AX,[DI+DESP] ADD [SI+DESP],BX MOV AX,desp[DI] ADD desp[SI],BX
Microprocesadores
25
Modos de Direccionamiento
Direccionamiento con base e indice o Indexado a base
El operando se encuentra en una direccin especificada por la suma de un registro de segmento*16, uno de base, uno de ndice y opcionalmente un desplazamiento de 8 16 bits:
MOV AX,ES:[BX+DI+DESP]
MOV CS:[BX+SI+DESP],CX
MOV AX,ES:desp[BX][DI]
MOV CS:desp[BX][SI],CX
Microprocesadores
26
Microprocesadores
27