lunes, 11 de noviembre de 2013

ejemplos macros y procedimientos ensamblador





MACROS.ASM:

Listado de MACROS.ASM
retorno MACRO
           MOV ah, 4ch
       INT 21h
ENDM
display  MACRO cadena
MOV dx, OFFSET cadena
MOV ah, 09h
INT 21h
ENDM
leer_teclado MACRO
MOV ah, 08h
INT 21h

ENDM

En nuestro ordenador estamos realizando nuestro programa:

PILA SEGMENT STACK 'STACK'
dw 100h dup (?)
PILA ENDS
DATOS SEGMENT 'DATA'
paso db "MIOOO"
control db 5 dup (?)
men1 db "Clave de acceso:".13,10,"$"
men2 db "Bienvenido","$"
DATOS ENDS
CODIGO SEGMENT 'CODE'
ASSUME CS:  CODIGO, DS: DATOS, SS: PILA
EMPEZAR:
MOV ax, DATOS
MOV ds, ax
INCLUDE A:\ MACROS,ASM ; Aquí le decimos al programa que incluya las ma­cros del porgrama  que se encuentra en el fichero MACROS:ASM que se encuentra en un disco en la unidad A de nuestro ordenador.
DOS:
MOV si, 0
display men1    ; "display" es una MACRO que tiene parámetro.
MOV cx, 5
UNO:
leer teclado ; Otra MACRO. Esta macro no tiene parámetros.
MOV control[SI], al
INC si
LOOP  UNO
MOV si, 0
MOV cx, 5
TRES:

MOV al, control[SI]
CMP al, paso[SI]
JNE DOS
INC SI
LOOP TRES
display men2 ; Otra MACRO
retorno            ; Otra MACRO sin parámetros
CODIGO ENDS
ENDS EMPEZAR

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

display MACRO cadena
 PUSH dx
 PUSH ax
 MOV dx, offset cadena
 MOV ax, 09h
 INT 21h
 POP ax
 POP dx

ENDM

No hay comentarios:

Publicar un comentario