Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011...

25
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

Transcript of Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011...

Page 1: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Modelo de programación de la Familia INTEL®-Pentium™ y uso del

Lenguaje de Ensamblaje TEEL 4011

Prof. Jaime José Laracuente-Díazwww.uprb.edu/profesor/jjlaracuente

Page 2: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

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).

Page 3: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

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

Page 4: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Flags

• Otras “banderas”, específicamente las denominadas de control, son utilizadas para alterar operaciones del procesador en ciertas ocasiones. – Interrupt Enable – Direction – Trap

Page 5: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Flags

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

TF DF IF OF SF ZF AF PF CF

Page 6: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Flags 8086/8088

Page 7: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Ahora…hablemos del modelo de programación y el uso del lenguaje de

ensamblaje para la familia INTEL…

Page 8: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

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

Page 9: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

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 = ?

Page 10: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Registros Generales en los modelos Pentium™

• Los modelos Pentium fueron objeto de un aumento en la capacidad en bits de sus registros generales.

Page 11: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

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: ???

Page 12: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

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.

Page 13: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Programación en Lenguaje de Ensamblaje

Page 14: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

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.

Page 15: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

December 9, 1906(1906-12-09) – January 1, 1992 (aged 85)

Grace Hopper

(January 1984)

Photo of first computer bug

Page 16: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Flujo-grama• 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.

Flowchart

Page 17: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

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.

Page 18: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

English-likeAssemblyLanguage

Binary

Assembler

Figure 12-3 Block diagram of microprocessor programming

Recuerde…el micro entiende binario…es decir código de máquina.

Page 19: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Ejemplo para ejecutar en su

máquina……ok…vamos a

explicar…

(Anote por favor…)

Page 20: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Ejecutando el programa con la herramienta de Debug…

Page 21: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

…Debug…

• Ejecucion del programa mostrado en la pantalla de Debug…

Page 22: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Ejemplo 12-2 Construcción de un programa en assembler…

Page 23: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Flujo-grama del ejemplo 12-2Este siempre será el primer paso en la

construcción de un programa.

Page 24: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Ejecución del programa del Ejemplo 12-2 en el Debug…

Page 25: Modelo de programación de la Familia INTEL®-Pentium™ y uso del Lenguaje de Ensamblaje TEEL 4011 Prof. Jaime José Laracuente-Díaz .

Estado de la data en los registros y memoria antes y después de ejecutar el programa del ejemplo 12-2.