domingo, 10 de noviembre de 2013

Actividad #11


MACROS

Las macros son útiles para los siguientes propósitos:

* Simplificar y reducir la cantidad de codificación repetitiva.
* Reducir errores causados por la codificación repetitiva.
* Linealizar un programa en lenguaje ensamblador para hacerlo mas legible.


INITZ MACRO                      ;define macro 
      MOV   AX,@data             ;}cuerpo de 
      MOV   DS,AX                ;{la definicion
      MOV   ES,AX                :{de la macro
      ENDM                       ;Fin de la macro

una macro que recibe un parametro y que permite cadenas en pantalla seria  :


.MACRO Imprime_Cad(cadena)
LEA DX,Cadena
MOV AH,09h
INT 21h
ENDM

PROCEDIMIENTOS

A continuación se describen los pasos necesarios para la ejecución de un procedimiento:

1. Se encuentra la llamada Call.
2. El microprocesador almacena en la Pila el contenido del IP.
3. Se coloca en el IP el valor del desplazamiento correspondiente al Procedimiento.
4. El microprocesador ejecuta las instrucciones del procedimiento.
5. El procedimiento termina cuando se encuentra con la instrucción Ret.
6. Se saca de la Pila el valor original del IP y se continua el flujo del programa

El siguiente procedimiento coloca el cursor en las coordenadas establecidas en DI y DH:

PROC GotoXY
XOR BH,BH
MOV AH,02H
INT 10h
RET
ENDP GotoXY

--------------------------------------------------------



         page 60,132 
TITLE     P08CALLP (EXE) Llamada a procedimientos 
               .MODEL     SMALL 
               .STACK      64 
               .DATA 
;--------------------------------------------------------------------- 
               .CODE 
BEGIN    PROC        FAR 
               CALL          B10             ;Llama a B10 
;              ... 
               MOV         AX,4C00H     ;Salida a DOS 
               INT 21H 
BEGIN    ENDP 
;--------------------------------------------------------------------- 
B10        PROC       NEAR 
              CALL         C10               ;Llama a C10 
;             ... 
              RET                                ;De regreso 
B10       ENDP                              ;Quien llama 
;--------------------------------------------------------------------- 
             END BEGIN



diferencia entre macro y procedimiento:

El empleo de macros no debemos confundirlo con el empleo de procedimientos, ya que una llamada a una macro sustituye su nombre por el cuerpo de la misma, en cambio, una llamada a procedimientos lo único que realiza es un enlace con otro programa. Las macros se suelen incluir todas dentro de ficheros específicos. En cada uno de los ficheros situaremos las macros que tengan alguna relación entre sí

No hay comentarios:

Publicar un comentario