Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso 2008-2009
Transparencia: 2 / 27
ndice
Instrucciones de manejo de bits La pila Definicin de procedimientos Tipos de procedimientos: NEAR y FAR Paso de parmetros a un procedimiento Mediante registros Mediante la pila Estructuras y paso de parmetros Macros Macros y procedimientos
Transparencia: 3 / 27
Nombre: Formato:
Descripcin: Es igual que la operacin AND ( y lgico) pero no se guarda el resultado en destino Se realiza a nivel de bit y modifica los flag de estado Ejemplo: ; TEST AX, BX JZ Es_Cero AX = 1234, BX = 0000 ; AX =1234, BX = 0000, Resultado = 0000 ; Salta si es cero a la posicin Es_Cero
Laboratorio de Estructura de Computadores I. T. I. de Gestin / Sistemas
Transparencia: 4 / 27
Nombre: Formato:
CLI CLI
Descripcin: Desactiva las interrupciones Las interrupciones no enmascarables no se pueden inhibir Ejemplo: CLI
Transparencia: 5 / 27
Nombre: Formato:
STI STI
Transparencia: 6 / 27
Nombre: Formato:
CLC CLC
Transparencia: 7 / 27
Nombre: Formato:
STC STC
Transparencia: 8 / 27
Nombre: Formato:
CLD CLD
Descripcin: Pone a cero el flag de direccin (para trabajar con las instrucciones de cadenas) Ejemplo: CLD
Transparencia: 9 / 27
Nombre: Formato:
STD STD
Descripcin: Pone a uno el flag de direccin (para trabajar con las instrucciones de cadenas) Ejemplo: STD
Transparencia: 10 / 27
La pila
Es una parte de la memoria encargada de gestionar de forma adecuada los procedimientos y las interrupciones Es una estructura LIFO (last in first out) La gestin se realiza a travs del puntero de pila SP y de su registro de segmento asociado SS El tamao de cada posiciones de 16 bits La pila crece hacia abajo (direcciones decrecientes de memoria) con PUSH La pila decrece hacia arriba (direcciones crecientes de memoria) con POP
PILA
PUSH
POP
16 bits
Transparencia: 11 / 27
Definicin de procedimientos
Los procedimientos son un conjunto de instrucciones que se pueden ejecutar desde muchos lugares diferentes de un programa, en vez de tener que repetir muchas veces el mismo conjunto de instrucciones cada vez que se necesitan Los procedimientos se llaman mediante la instruccin CALL La ltima instruccin de un procedimiento es la instruccin RET La direccin de retorno de un procedimiento (y en ciertos casos, procedimiento tipo FAR, el segmento al que pertenece) se almacena en la pila Para delimitar el conjunto de instrucciones que forman un procedimiento se emplean las palabras clave: PROC (comienzo del procedimiento) y ENDP (final del procedimiento)
Laboratorio de Estructura de Computadores I. T. I. de Gestin / Sistemas
Transparencia: 12 / 27
Tipos de procedimientos
A los procedimientos se les asignan dos atributos FAR (si se le va a llamar desde otro segmento) y NEAR (si se le llama desde el mismo segmento) El procedimiento principal de un programa siempre es FAR Ejemplo de definicin de un procedimiento ImprimeTira INT 21h RET ImprimeTira ENDP PROC FAR ; es un procedimiento que llama
; a la funcin 9h del DOS para imprimir. ; una cadena de caracteres dadas en DS:DX ; retorno de procedimiento
Transparencia: 13 / 27
Normalmente se emplean los registros para pasar parmetros a un procedimiento y para devolver el resultado del mismo. Ya que tenemos un nmero limitado de registros, puede que se modifiquen los registros dentro de un procedimiento. En cuyo caso perderemos los valores que tenan antes de la llamada. Por ello, se deben salvar en la pila todos los registros que se empleen en el procedimiento, como el primer grupo de instrucciones. Tambin se deben recuperar antes de volver del procedimiento los valores originales de los registros. De todos menos de aquellos en los que se devuelvan los resultados del procedimiento.
Transparencia: 14 / 27
Estructura de la pila
Transparencia: 15 / 27
Transparencia: 16 / 27
Transparencia: 17 / 27
Transparencia: 18 / 27
Argumento de la instruccin RET desde el mdulo llamado Indica el nmero de posiciones de la pila que se desean eliminar Ser siempre el cudruple del nmero de parmetros. Si se le pasan 4 parmetros el argumento ser 16. Es decir, RET 16
Transparencia: 19 / 27
Transparencia: 20 / 27
p2
DW
p1
DW
10
Transparencia: 21 / 27
Nombre: RCR Formato: RCR destino, contador Descripcin: Rota los bits del operando destino hacia la derecha tantos bits como indique el valor del contador a travs del flag de acarreo. Ejemplos: MOV AX, 8001h ROR AX, 1 MOV CL, 2 ROR AX, CL ; AX = 8001h y suponemos el flag de acarreo a 1 ; AX = C000h ; CL = 2 ; AX = 7000h y el flag de acarreo estar a 0
Transparencia: 22 / 27
NRET EQU OFFSET p1 - EQU OFFSET retorno Estructura ends Departamento de Automtica rea de Arquitectura y Tecnologa de Computadores
11
Transparencia: 23 / 27
Las macros
Las macros son nombres que se le dan a trozos de cdigo. Dentro del cdigo se pueden llamar, pero en lugar de saltar a la zona donde estn definidas, se expande (se copia) el cdigo sustituyendo a la llamada. Si se le pasan ms parmetros los ignorar. Si se le pasan ms parmetros ignorar las instrucciones que los usen. Hay que tener cuidado con las etiquetas definidas dentro de una macro ya que se expanden tambin duplicando los nombre de las mismas
Laboratorio de Estructura de Computadores I. T. I. de Gestin / Sistemas
Transparencia: 24 / 27
Nombre: ENDM (END MACRO) Formato: ENDM Descripcin: indica el final de una macro Ejemplo: sumar MACRO operando1, operando2, resultado cuerpo de la macro ENDM
Departamento de Automtica rea de Arquitectura y Tecnologa de Computadores Laboratorio de Estructura de Computadores I. T. I. de Gestin / Sistemas
12
Transparencia: 25 / 27
Ejemplo: retardo MACRO numero local seguir mov cx, numero seguir: loop seguir ENDM
Laboratorio de Estructura de Computadores I. T. I. de Gestin / Sistemas
Transparencia: 26 / 27
Procedimientos El cdigo asociado es nico Ms lentos Al finalizar el procedimiento se vuelve a la instruccin siguiente a la que la llam Menos flexible por con los parmetros
Macros El cdigo se repite cada vez que se llama ya que el ensamblador lo expande. Ms rpidas Despus de la ejecucin de la macro se ejecuta la instruccin siguiente. Ms flexible con lo parmetros
13
Transparencia: 27 / 27
Bibliografa
8088-8086/8087 programacin ensamblador en entorno MS-DOS Miguel Angel Rosell. Ed. Anaya Multimedia Microprocesadores: el 8088 / 86 Fernando Remiro Domnguez, Agustn Martn Garca Ed. Akal-Bibiloteca tecnolgica Lenguajes ensambladores R. Martnez Toms. Ed. Paraninfo Lenguaje ensamblador de los 80x86 Jon Beltrn de Heredia Ed. Anaya-Multimedia. 1996
Laboratorio de Estructura de Computadores I. T. I. de Gestin / Sistemas
14