Arquitectura del 8086/8088 TEEL 4011

Download Report

Transcript Arquitectura del 8086/8088 TEEL 4011

Modelo de programación de la
Familia INTEL®-Pentium™ y uso del
Lenguaje de Ensamblaje
TEEL 4011
Prof. Jaime José Laracuente-Díaz
www.uprb.edu/profesor/jjlaracuente
Flags
Repaso de Arquitectura del 8086 (presentación
previa)
• Existe un registro que se conoce como el Flags
Register y está ubicado en el Execution Unit
en la familia INTEL® 8086/8088.
• Este posee nueve (9) bits de estatus y control
independientes denominados “flags”
(banderas).
Flags
• Algunas “banderas”, específicamente las
denominadas de estatus 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
Flags
• Otras “banderas”, específicamente las
denominadas de control, son utilizadas
para alterar operaciones del procesador
en ciertas ocasiones.
– Interrupt Enable
– Direction
– Trap
Flags
TF
•
•
•
•
•
•
•
•
•
DF
IF
OF
CF = Carry
PF = Parity
AF = Aux carry
ZF = Zero
SF = Sign
OF = Overflow
IF = Interrupt enable
DF = Direction
TF = Trap
SF
ZF
AF
PF
CF
Flags 8086/8088
Ahora…hablemos del modelo de
programación y el uso del lenguaje de
ensamblaje para la familia INTEL…
Modelo de programación de la familia
INTEL®
• La familia de microprocesadores INTEL® ha
evolucionado desde los modelos 8086/8066
hasta los modelos más recientes de Pentium.
– Las adelantos más significativos desde el
8086/8088 hasta el Pentium incluyeron entre
otros:
• Mayor capacidad de bits en registros
• Un alcance de acceso a memoria mucho mayor al
posible previamente
Registros Generales en el 8086/8088
• Recuerde que los registros generales del 8086/8088 poseen
16 bits de capacidad. Permitiendo combinaciones entre
registros generales y registros “pointer and index” para
alcanzar direcciones en memoria con hasta 20 bits.
Recuerde: 2 ^ 20 = ?
Registros Generales en los modelos
Pentium™
• Los modelos Pentium fueron objeto de un aumento
en la capacidad en bits de sus registros generales.
Registros Generales en los modelos
Pentium™
• En la figura anterior vemos como los registros
generales del modelo Pentium alcanzaron hasta
32 bits en capacidad.
– Es importante señalar que los cambios comenzaron a
ciencia cierta con el modelo 80386, (mi primer
Micro…).
• Este aumento le ofrece mayor alcance en
memoria a esta arquitectura de microprocesador.
– Conteste:
• Alcance en memoria: ???
Compatibilidad en la familia INTEL®
• Importante:
– La familia INTEL posee compatibilidad. Es decir, los
programas creados para los modelos 8086/8088
se pueden ejecutar en los modelos Pentium.
– Cuando esto ocurre se dice que estamos
trabajando en el Real Mode.
– No necesariamente lo opuesto es también cierto.
Es decir, no se espera que se ejecuten programas
escritos para los modelos Pentium en los modelos
8086/8088.
Programación en Lenguaje de
Ensamblaje
El uso de los programas
• Los micro necesitan de
unos programas que
son quienes controlan
la ejecución de los
procesos.
• Es decir, un micro sin un
programa que los dirija
es un circuito integrado
de alto nivel en reposo.
Grace Hopper
(January 1984)
December 9, 1906(1906-12-09) – January 1, 1992
(aged 85)
Photo of first computer bug
• Este flujo-grama describe la
serie de pasos o
instrucciones que un
programa posee para
realizar la suma de una
serie de números.
– Se inicializa un registro
– Se señala al primer numero
en memoria
– Se decide el próximo paso
dependiendo del valor
– Si no es cero se continua a
sumar lo que esta en
memoria al valor que estaba
en el registro
– Se señala al próximo numero
en memoria y así continua el
proceso.
Flujo-grama
Flowchart
Leguaje de Ensamblaje
• Luego el flujo-grama se escribe en líneas de código o
instrucciones en lenguaje de ensamblaje. Se utiliza un
léxico similar al ingles.
• Recuerde que este léxico se conoce como: mnemonic
al cual comúnmente se le conoce como op-code.
English-like
Assembly
Language
Assembler
Recuerde…el
micro entiende
binario…es
decir código de
máquina.
Binary
Figure 12-3 Block diagram of microprocessor programming
Ejemplo para
ejecutar en su
máquina…
…ok…vamos a
explicar…
(Anote por
favor…)
Ejecutando el programa con la
herramienta de Debug…
…Debug…
• Ejecucion del
programa
mostrado en la
pantalla de
Debug…
Ejemplo 12-2
Construcción de un programa en assembler…
Flujo-grama del ejemplo 12-2
Este siempre será el primer paso en la
construcción de un programa.
Ejecución del programa del Ejemplo
12-2 en el Debug…
Estado de la data en los registros y memoria antes y
después de ejecutar el programa del ejemplo 12-2.