La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitectura del 8086/8088 TEEL 4011

Presentaciones similares


Presentación del tema: "Arquitectura del 8086/8088 TEEL 4011"— Transcripción de la presentación:

1 Arquitectura del 8086/8088 TEEL 4011
Prof. Jaime José Laracuente-Diaz

2  (address summing block)
Bus Interface Unit Address bus 20 bits  (address summing block) Data bus 8 bits CS DS SS ES Bus Control Logic IP Internal Comm Registers ALU data bus (16 bits) Instruction Queue 1 2 3 4

3 Bus Interface Unit Instruction Queue = este aumenta la velocidad promedio a la cual un programa es ejecutado. Se almacenan hasta 4 bytes (6 bytes en el 8086). Se logra la operación “fetch and execute”. Segment Registers CS DS SS ES

4 Bus Interface Unit Estos registros son de 16 bits.
Se utilizan para trabajar con el acceso a direcciones de 20 bits. INTEL diseño un método que utiliza en los 8086 y 8088 siempre un segment register y un general register para formar la dirección en memoria de 20 bits.

5 Bus Interface Unit Instruction Pointer (IP) and Address Summing Block
posee 16 bits Apunta a la próxima instrucción que el programa ejecutara. Siempre hace referencia al CS (code segment register) Se forma la dirección de la próxima instrucción haciendo uso del CS y del IP.

6 Bus Interface Unit El IP siempre contiene el “offset address” del de la próxima instrucción. Veamos en un diagrama como se forma la dirección de 20 bits utilizando la combinación de registros.

7 (16 bits segment base address)
Bus Interface Unit CS Register (16 bits segment base address) 0000 16 bits offset address IP (Instruction Pointer) 20 bits physical address

8 Segment Registers Los segment registers contienen los 16 bits más significativos que representan la dirección de comienzo de ese bloque de memoria. Se conocen como segmento un bloque de 64kbyte de memoria y que comienza en cualquier localización de la memoria de 1Mbyte, siempre y cuando posea una frontera de 16 byte.

9 Segment Registers Un programador puede cambiar el contenido de los segment registers para que apunten otros bloques de 64kbytes de ser necesario. Notaremos que los segmentos son indicados por los valores que estén almacenados en los segment registers según ilustra la Figura 12-7 del libro de Floyd.

10 Nonoverlapping Method
FFFFF F0000 E0000 D0000 Extra Segment The data segment begins at segment address 9000 and offset address 0000. C0000 B0000 Stack Segment A0000 Data Segment 90000 The code segment begins at segment address 6800 and offset address 0000. 80000 Code segment 70000 60000 50000 40000 30000 20000 10000 Figure 12-7 00000

11 Ejemplo 12-1 CS = A034 (hex) IP = 0FF2 (hex)
Si hacemos un “shifting” de CS cuatro bits a la izquierda (un digito hex) colocaríamos un 0 (hex) en la posición LSD como mostramos a continuación: 0FF2 A0340 0FF2 A1332 Physical Address of next instruction Base Address (shifted left 4 bits) Offset Address

12 Ejemplo 12-1 El programa ensamblador es quien se encarga de realizar la asignación de la dirección física de la próxima instrucción. Por lo tanto el programador usualmente lo que ofrece son los datos del CS y del IP, por ejemplo: A034:0FF2

13 Execution Unit Recuerde que el ALU es donde se realizan todas las operaciones aritméticas y lógicas trabajando con operandos de 8-bits o 16-bits. Los registros generales poseen 16-bits de capacidad. Estos están divididos en dos grupos de cuatro registros cada uno, como ilustra la Figura

14 Figura 12-12 8086/8088 General Registers AH BH CH DH AL BL CL DL
Accumulator Base Index Count Data 8086/8088 General Registers SP Stack Pointer Base Pointer Destination Index Source Index BP DI SI Figura 12-12

15 General Registers Note que la división de los registros generales ocurre en dos clases: Registros generales de data Registros generales de “pointer” y “index set”. Los “pointer registers” se utilizan para indicar una dirección especifica de memoria. Cada uno de los registros generales de data poseen dos secciones accesibles de 8-bits.

16 General Registers Estas dos secciones nos permiten programar su uso en ocasiones como dos registros de 8-bits cada uno. Los registros de data pueden ser utilizados para almacenar un valor antes o después de ejecutar una instrucción. Los registros de “pointers” y “index” se utilizan en varias formas por el EU al acceder espacios de memoria.

17 Flags Existe un registro que se conoce como el Flags Register.
Este posee nueve (9) bits de estatus y control independientes denominados “flags” (banderas).

18 Flags Estas “banderas” son utilizadas para indicar una condición luego de que una instrucción ha sido ejecutada por el ALU como: CF = carry sum ZF = zero flag SF = sign flag También son utilizadas para alterar operaciones del procesador en ciertas ocasiones.

19 Flags CF = Carry PF = Parity AF = Aux carry ZF = Zero SF = Sign
TF DF IF OF SF ZF AF PF CF CF = Carry PF = Parity AF = Aux carry ZF = Zero SF = Sign OF = Overflow IF = Interrupt enable DF = Direction TF = Trap


Descargar ppt "Arquitectura del 8086/8088 TEEL 4011"

Presentaciones similares


Anuncios Google