IPN Escuela Superior de Cómputo MICROPROCESADORES II.

Slides:



Advertisements
Presentaciones similares
Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Advertisements

Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Instrucciones de operación sobre datos
LICENCIATURA EN SISTEMAS COMPUTACIONALES EN ADMINISTRACION
REGISTROS INTERNOS DEL PROCESADOR.
CLASE 3 SOFTWARE DEL MICROPROCESADOR
No. Lista 31 Teresita Ramírez Uribe HORA: 8:00-9:00AM.
N.L 32 ROMERO HERNÁNDEZ GABRIELA VERÓNICA. HORA: 8:00-9:00AM ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR.
Introducción al lenguaje ensamblador
ARQUITECTURA INTEL FORMATOS DE INSTRUCCIÓN
ARQUITECTURA INTEL Modos de direccionamiento
Programación en Lenguaje Ensamblador.
Arquitectura de Conjunto de Instrucciones (ISA)
PROG. EN ENSAMBLADOR Ing. Pablo Cesar Tapia Catacora.
Composición Interna de un Procesador
SEMANA 05_2.

Lenguaje Ensamblador integrantes: Esthela Vianey Vázquez Medina No.30
Arquitectura del Computador
Ing. CIP Francisco Mori Quiroz
MODOS DE DIRECCIONAMIENTO No. Lista 21 7am Rivas chacón Ana cristina
MODOS DE DIRECCIONAMIENTO

Arquitectura del 8086/8088 El 8086 Arquitectura de computadoras II
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
Introducción al lenguaje ensamblador
Tema 2: INTRUCCIONES Profesor: Carlos Concha S LENGUAJES DE BAJO NIVEL.
2.2 Registro de Banderas Conjunto de bits que nos dan información sobre el estado del procesador y sobre el resultado de la última operación efectuada.
MODOS DE DIRECCIONAMIENTO

Arquitectura del 8086/8088 TEEL 4011
Conceptos Arquitectónicos del computador
Lenguaje de Programación cap. 1 Estructura del Computador.
Microprocesador (80X86) Universidad Nacional de Ingeniería
Introducción a los Sistemas Operativos
Tema 1: DATOS Y REGISTROS
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.

Tema 2: Lenguaje máquina
INTRODUCCION AL AMBIENTE DE BAJO NIVEL ® M.C.C. Sergio Luis Castillo Valerio Esta presentación puede reproducirse libremente siempre que se mantengan estos.
MODOS DE DIRECCIONAMIENTO
A este registro se le conoce también como registro de estado. Consta de 16 bits y únicamente 9 de ellos contiene información, indican el estado de la.
introducción al Lenguaje Ensamblador
MODOS Y METODOS DE DIRECCIONAMIENTO
Microprocesador (8086) Universidad Nacional de Ingeniería
Introducción al lenguaje ensamblador
PROGRAMACION A BAJO NIVEL
Sistemas Operativos Ensamblador. Junio de 2005Cesar Guisado2 Ventajas del Ensamblador La primera razón para trabajar con ensamblador es que proporciona.
Capítulo 4 CPU y la memoria.
SEMANA 01_2.
TEMA : ARQUITECTURA DE COMPUTADORAS

introducción al Lenguaje Ensamblador
Modos de direccionamiento
Maquinas Digitales UNIDADES DE CONTROL.
Principio unidad 1.
INTRODUCCIÒN MICROCONTROLADORES
Introducción a la Arquitectura Intel x86 © M.C.C. Sergio Luis Castillo Valerio Esta presentación puede reproducirse libremente siempre y cuando se mantenga.
Aprende el arte de la ingeniería inversa
COMUNIDAD YAQUI! Sikiri#4 Heeka#7 Ba’am#19.
José Alvarado – Cristian Anzola
Arquitectura de Computadores
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
El microprocesador y su arquitectura
Introducción MSc. Rina Arauz.
El Computador. Computador. Máquina compuesta de elementos físicos (en su mayoría de origen electrónico) capaz de aceptar unos datos de entrada, realizar.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de PCs Arquitectura básica del PC. Introducción El PC es el resultado de una especificación técnica de IBM El hardware se organiza de forma.
Estas dos líneas de código permiten al Asm iniciar en Code Segment
Transcripción de la presentación:

IPN Escuela Superior de Cómputo MICROPROCESADORES II

CONTENIDO: I. INTRODUCCION 1.1. Importancia del lenguaje ensamblador 1.2. Descripción y características del lenguaje ensamblador 1.3. Modelos de arquitectura de computadoras 1.4. Características de los microprocesadores de la familia x86 II. EL MICROPROCESADOR Y SU ARQUITECTURA 2.1. Descripción de la unidad procesadora de una microprocesador de la familia x Registros del microprocesador 2.3. Modo Real y Modo Protegido del Microprocesador 2.4 Segmentación 2.5. Modos de direccionamiento de datos III. PROGRAMACION EN ENSAMBLADOR 3.1. Requerimientos para la programación en ensamblador 3.2. Formato de un programa en ensamblador 3.3. Software TASM y MASM 3.4. Creación de un programa en ensamblador

CONTENIDO: IV. CONJUNTO DE INSTRUCCIONES EN ENSAMBLADOR 4.1. Instrucciones para movimiento de datos 4.2. Instrucciones aritméticas y lógicas 4.3. Instrucciones de entrada/salida 4.4. Instrucciones control de programa V. MACROS Y PROCEDIMIENTOS 5.1. Definición de procedimiento 5.2. Sintaxis de un procedimient Definición de una macro 5.4. Sintaxis de una macro 5.5. Bibliotecas de macros 6. INTERRUPCIONES 6.1. Definición de interrupción 6.2. Clasificación 6.3. Funcionamiento del mecanismo de interrupciones 6.4. Interrupciones más comunes

CONTENIDO: VII. MANEJO DE ARCHIVOS 7.1. Manejando archivos con el método FCB 7.2. Manejando archivos con canales de comunicación VIII. PROGRAMACION DE PERIFERICOS 8.1. Puerto Paralelo 8.2. Puerto Serial 8.3. TIMER 8.4. Controlador de Interrupciones 8.5. Coprocesador matemático 8.6. Modo gráfico y ratón IX. PROGRAMACION AVANZADA 9.1. Interfaz del lenguaje “C” con ensamblador 9.2. Programación de ensamblador en Windows

I. INTRODUCCION : 1.1. Importancia del lenguaje ensamblador 1.2. Descripción y características del lenguaje ensamblador 1.3. Modelos de arquitectura de computadoras 1.4. Características de los microproc. de la familia x86

1.1, 1.2 El ensamblador Existen varias razones que justifican el uso del ensamblador en lugar de otros lenguajes: Existen varias razones que justifican el uso del ensamblador en lugar de otros lenguajes: El ensamblador brinda la oportunidad de conocer más a fondo la operación de su PC. El ensamblador brinda la oportunidad de conocer más a fondo la operación de su PC. Se conserva el control total las tareas que realiza la PC, siempre y cuando ésta sea físicamente capaz de hacerlo. Se conserva el control total las tareas que realiza la PC, siempre y cuando ésta sea físicamente capaz de hacerlo. Los programas en ensamblador son más rápidos, más compactos y tienen mayor capacidad que los creados en otros lenguajes. Los programas en ensamblador son más rápidos, más compactos y tienen mayor capacidad que los creados en otros lenguajes. Permite optimizar al máximo los programas. Permite optimizar al máximo los programas.

1.3 Arquitecturas de computadoras RISC vs. CISC RISC vs. CISC RISC. RISC. CISC. CISC. Hardvard vs. Princeton (Von Neuman): Hardvard vs. Princeton (Von Neuman): Hardvard. Hardvard. Von Neuman. Von Neuman. Otras clasificación, (Flynn): Otras clasificación, (Flynn): MIMD, MISD, SIMD y SISD. MIMD, MISD, SIMD y SISD.

1.3 Arquitecturas de computadoras La arquitectura Harvard, separa la memoria de datos y la memoria de programa, y se accede a ellas mediante buses distintos. La arquitectura Von Neuman trata de la misma forma los datos que las instrucciones.

1.4 Características micros x86

II. EL MICROPROCESADOR Y SU ARQUITECTURA 2.1. Descripción de la unidad procesadora de una microprocesador de la familia x Registros del microprocesador 2.3. Modo Real y Modo Protegido del Microprocesador 2.4. Segmentación 2.5 Modos de direccionamiento de datos

2.1. El Microp. 80X86 y su Arquitectura CPU 80X86 Memoria RAM Puertos E/S Bus de Direcciones Bus de Datos Bus de Control

2.2 Registros -Registros: Propósito general, propósito específico y de segmento. -Los registros sombredos existen despues del FS y GS no tienen nombres asociados.

2.2 Registros Registro: Conjunto de flip-flops capaz de almacenar, y en algunos casos modificar, información binaria. Registro: Conjunto de flip-flops capaz de almacenar, y en algunos casos modificar, información binaria. Dentro de todo CPU existe un conjunto de registros. Dentro de todo CPU existe un conjunto de registros. Algunos tienen un uso específico, otros son de uso general. Algunos tienen un uso específico, otros son de uso general. Los registros de uso general normalmente se utilizan para guardar datos y resultados intermedios. Los registros de uso general normalmente se utilizan para guardar datos y resultados intermedios.

2.2 Registros Desde el punto de vista del programador, es muy importante conocer el conjunto de registros internos de un procesador y su uso, cuando se programa en bajo nivel. Desde el punto de vista del programador, es muy importante conocer el conjunto de registros internos de un procesador y su uso, cuando se programa en bajo nivel. Esto se debe a que muchas de las instrucciones de lenguaje máquina suponen que los datos están en alguno de los registros o almacenan el resultado en alguno de los registros internos. Esto se debe a que muchas de las instrucciones de lenguaje máquina suponen que los datos están en alguno de los registros o almacenan el resultado en alguno de los registros internos.

2.2 Registros de los procesadores 80X86 Registros de Uso General: Registros de Uso General: –EAX:Acumulador –EBX:Base –ECX:Contador –EDX:Datos. –Estos registros pueden guardar datos de 32, 16 u 8 bits. 32 bits 16 bits EAX AX AHAL

2.2 Registros de los procesadores 80X86 –ESP: Stack Pointer (Apuntador de Pila) –EBP: Base Pointer (Apuntador Base) –ESI: Source Index (Indice Fuente u Origen) –EDI: Destination Index (Indice Destino) –Estos registros pueden almacenar datos de 32 o 16 bits. 32 bits 16 bits ESP SP

2.2 Registro de Banderas Conjunto de bits que nos dan información sobre el estado del procesador y sobre el resultado de la última operación efectuada. Conjunto de bits que nos dan información sobre el estado del procesador y sobre el resultado de la última operación efectuada. Es el único registro accesible a nivel de bits. Es el único registro accesible a nivel de bits. Algunos de estos bits son: Algunos de estos bits son: –CF: Carry flag- ZF: Zero flag –SF: Sign flag- OF: Overflow flag –IF: Interrupt flag- DF: Direction flag OF DF IF SF ZF CF

2.2 Registros de los procesadores Registros de Segmento Registros de Segmento –CS: Code Segment (Segmento de Código) –DS: Data Segment (Segmento de Datos) –SS: Stack Segment (Segmento de Pila) –ES: Extra Segment (Segmento Extra) –FS: Extra Segment (Segmento Extra) –GS: Extra Segment (Segmento Extra) »Son registros de 16 bits. »Se utilizan para generar las direcciones que el procesador envía por el bus de direcciones.

2.3 Modo real y protegido Los microprocesadores y posteriores operan tanto en modo real como en modo protegido. Los microprocesadores y posteriores operan tanto en modo real como en modo protegido. Sólo el 8086 y 8088 operan en modo real. Sólo el 8086 y 8088 operan en modo real. La operación en modo real permite direccionar a segmentos de 64 KB de memoria. La operación en modo real permite direccionar a segmentos de 64 KB de memoria. En el modo real de operación, el direccionamiento a memoria se hace en forma segmentada. Una dirección segmentada tiene 2 partes: En el modo real de operación, el direccionamiento a memoria se hace en forma segmentada. Una dirección segmentada tiene 2 partes: Segmento : Desplazamiento El registro CS trabaja en conjunto con el registro IP (Apuntador de Instrucción) para generar las direcciones hacia el programa. El registro CS trabaja en conjunto con el registro IP (Apuntador de Instrucción) para generar las direcciones hacia el programa.

2.4 Segmentación Técnica utilizada en los procesadores Intel 8086/8088 para generar direcciones de 20 bits usando registros de 16 bits. Técnica utilizada en los procesadores Intel 8086/8088 para generar direcciones de 20 bits usando registros de 16 bits. –Para ilustrar esta técnica, suponga que se desea ubicar la posición de una persona a partir de un punto de referencia, pero utilizando solamente números de 2 dígitos decimales mts

2.4 Segmentación Esto se puede realizar si se hace lo siguiente: Esto se puede realizar si se hace lo siguiente: –Se divide la recta en bloques de 100 metros cada uno. –Se utilizan dos números: »Uno para indicar en cuál bloque está la persona »Otro para especificar su posición dentro del bloque. –Posición = Bloque:Posición mts 0:50 3:45

2.4 Segmentación Para obtener la ubicación real debe realizarse la siguiente operación: Para obtener la ubicación real debe realizarse la siguiente operación: – Ubicación = Bloque*100 + Posición »Posición1 = 0* = 50 »Posición2 = 3* = mts 0:50 3:45 Posición 1 Posición 2

2.4 Segmentación En el caso de los procesadores 80X86, los bloques se llaman SEGMENTOS y la posición se llama DESPLAZAMIENTO En el caso de los procesadores 80X86, los bloques se llaman SEGMENTOS y la posición se llama DESPLAZAMIENTO En modo real, cada una se describe con un número de 16 bits. En modo real, cada una se describe con un número de 16 bits. Operando en modo real Operando en modo real Dirección Real = Segmento*16 + Desplazamiento. Dirección Real = Segmento*16 + Desplazamiento. La Dirección Real ya es una cantidad de 20 bits. La Dirección Real ya es una cantidad de 20 bits. Esto significa que toda dirección tiene 2 partes: Un Segmento y un desplazamiento. Esto significa que toda dirección tiene 2 partes: Un Segmento y un desplazamiento.

2.4 Segmentación en Modo Protegido Es importante recalcar que cuando los procesadores o posteriores operan en modo protegido, la segmentación funciona de manera muy diferente. Es importante recalcar que cuando los procesadores o posteriores operan en modo protegido, la segmentación funciona de manera muy diferente. Cada segmento puede ser de hasta 4 Gbytes. Cada segmento puede ser de hasta 4 Gbytes. Maneja memoria virtual, lo que implica un esquema de paginación. Maneja memoria virtual, lo que implica un esquema de paginación. Maneja también multitarea y un esquema de protección de memoria. Maneja también multitarea y un esquema de protección de memoria.

2.5 Modos de direccionamientos I. Modos de direccionamiento de datos 1.Direccionamiento de registro 2.Direccionamiento inmediato 3.Direccionamiento directo 4.Direccionamiento indirecto por registro 5.Direccionamiento base-más-índice 6.Direccionamiento relativo al registro 7.Direccionamiento relativo a base-más-índice 8.Direccionamiento índice escalado (x386..) II. Modos de direccionamiento de memoria del programa 1.Direccionamiento relativo al programa 2.Direccionamiento directo 3.Direccionamiento indirecto Observe la gran cantidad de modos de direccionamiento de datos. Observe la gran cantidad de modos de direccionamiento de datos.

2.5 Modos de direccionamientos SegmentoDesplazamiento Propósito Especial CSIP Dirección de instrucción SS SP o BP Dirección de pila. DS BX, DI, SI, un número Dirección de datos. ES DI para instrucciones sobre cadenas. Dirección de destino de cadenas. No se permite la instrucción MOV de segmento a segmento. No se permite la instrucción MOV de segmento a segmento. No se permite que el registro destino sea el segmento de código CS. No se permite que el registro destino sea el segmento de código CS. No son peremidos tamaños mezclados de registros. No son peremidos tamaños mezclados de registros.

2.5.1 Direccionamiento de registro Transfiere una copia de un byte o palabra desde el registro o localidad de memoria fuente hacia el registro o localidad de memoria destino. Transfiere una copia de un byte o palabra desde el registro o localidad de memoria fuente hacia el registro o localidad de memoria destino.Ejemplo: MOV AX,BXCopia el contenido del reg. DX al reg. CX. MOV AX,BXCopia el contenido del reg. DX al reg. CX. MOV AX,BX Reg. BX Reg. AX Generación de la dirección FuenteDestino  En los 386 y posteriores es posible transferir una palabra doble

2.5.1 Direccionamiento de registro Ejemplos: Ejemplos: MOV AL,BLCopia BL en AL. MOV AX,CXCopia CX en AX. MOV SI,DICopia DI en SI. MOV BX,ESCopia ES en BX MOV ES,DSNo es permitido MOV BL,DXNo es permitido MOV CS,AXNo es permitido

2.5.2 Direccionamiento inmediato Transfiere el dato (byte o palabra) inmediatamente al registro o localidad de memoria destino. Transfiere el dato (byte o palabra) inmediatamente al registro o localidad de memoria destino.Ejemplo: MOV CH,3AHCopia el contenido del reg. DX al reg. CX. MOV CH,3AHCopia el contenido del reg. DX al reg. CX. MOV CH,3AH 3AH Reg. CH Generación de la dirección FuenteDestino  En los 386 y posteriores es posible transferir una palabra doble

2.5.2 Direccionamiento inmediato Ejemplos: Ejemplos: MOV BL,44Copia 44 dec. en BL MOV AX,44HCopia 0044H en AX MOV SI,0Copia 0000H en SI MOV AL,’A’Copia A ASCII en AL MOV AX,’AB’Copia BA ASCII en AX

2.5.3 Direccionamiento directo Se aplica a una istrucción MOV entre una localidad de memoria y AL, Ax o EAX. La dirección está formada por la suma del desplazamiento más la dirección dada por defecto en el segmento de datos. Se aplica a una istrucción MOV entre una localidad de memoria y AL, Ax o EAX. La dirección está formada por la suma del desplazamiento más la dirección dada por defecto en el segmento de datos.Ejemplo: MOV AL,[1234H] Copia el contenido de la localidad de mem H a AL. MOV [1234H],AX Reg. AX Dirección [11234H] Generación de la direcciónFuenteDestino  Cuando DS=1000 DS x 10H + Desplazamiento 10000H H

2.5.4 Direccionamiento indirecto por registro Permite direccionar cualquier localidad de memoria mediante una dirección de desplazamiento contenida en: BP, BX, DI y SI. Permite direccionar cualquier localidad de memoria mediante una dirección de desplazamiento contenida en: BP, BX, DI y SI.Ejemplo: MOV [BX],CL Copia el contenido del reg. CL a la localidad de memoria direccionada por BX, en DS. MOV [BX],CL Copia el contenido del reg. CL a la localidad de memoria direccionada por BX, en DS. MOV [BX],CL Reg. CL Dirección [10300H] Generación de la direcciónFuenteDestino  Cuando DS=1000 DS x 10H + BX 10000H H

2.5.5 Direccionamiento base-más- índice Se utiliza un reg. base (BP o BX) y un reg. índice (DI o SI) para direccionar indirectamente la memoria. Se utiliza un reg. base (BP o BX) y un reg. índice (DI o SI) para direccionar indirectamente la memoria.Ejemplo: MOV [BX+SI],BP Copia el contenido del reg. BPa la dirección de mem. direccionada por BX + SI en el seg. de datos. MOV [BX+SI],BP Reg. BP Dirección [10500H] Generación de la direcciónFuenteDestino  Cuando DS=1000 DS x 10H + BX + SI 10000H H H

2.5.6 Direccionamiento relativo a registro Los datos de un segmento de memoria son direccionados sumando el desplazamiento al contenido de un registro base o índice (BP, BX, DI o SI). Los datos de un segmento de memoria son direccionados sumando el desplazamiento al contenido de un registro base o índice (BP, BX, DI o SI).Ejemplo: MOV CL,[BX+4] Copia el contenido de la localidad de mem. del DS direccionada por BX más 4 en CL. MOV CL,[BX+4] Reg. CL Dirección [10304H] Generación de la direcciónFuenteDestino  Cuando DS=1000 DS x 10H + BX H H + 4

2.5.7 Direccionamiento relativo a base-más-índice Se utiliza un reg. base (BP o BX) y un reg. índice (DI o SI) más un desplazamiento para formar la dirección de memoria. Es utilizado a menudo para direccionar un arreglo bidimensional de datos de memoria. Se utiliza un reg. base (BP o BX) y un reg. índice (DI o SI) más un desplazamiento para formar la dirección de memoria. Es utilizado a menudo para direccionar un arreglo bidimensional de datos de memoria.Ejemplo: MOV ARRAY[BX+SI],DXCopia DX a la localidad de mem del DS direccionada por la suma de ARRAY, BX y SI. MOV ARRAY[BX+SI],DX Reg. DX Dirección [11500H] Generación de la direcciónFuenteDestino  Cuando DS=1000, ARRAY=1000H DS x 10H + ARRAY + BX + SI 10000H H H H

2.5.8 Direccionamiento índice escalado Exclusivo para procesadores x386 y posteriores. Utiliza dos registros de 32 bits (uno base y otro ídice). El reg. índice es multiplicado por un factor de escalamiento 1X, 2X, 4X u 8X. El factor 1X está implicito. 2X es empleado para direccionar arreglos de mem. de palabras de 16 bits. 4X para palabras dobles y 8X para areglos de mem. de palabra cuádruple. Exclusivo para procesadores x386 y posteriores. Utiliza dos registros de 32 bits (uno base y otro ídice). El reg. índice es multiplicado por un factor de escalamiento 1X, 2X, 4X u 8X. El factor 1X está implicito. 2X es empleado para direccionar arreglos de mem. de palabras de 16 bits. 4X para palabras dobles y 8X para areglos de mem. de palabra cuádruple.Ejemplo: MOV [EBX+2x ESI],AXCopia AX en la loc. De mem. Del DS direccionada pro la suma EBX más dos veces ESI. MOV [EBX+2x ESI],AX Reg. AX Dirección [10700H] Generación de la direcciónFuenteDestino  Cuando DS=1000, EBX=300H, ESI=200H DS x 10H + EBX + 2 x ESI 10000H H H

GRACIAS POR NO DOMIRSE