Lenguaje programacion

Solo disponible en BuenasTareas
  • Páginas : 5 (1045 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de diciembre de 2010
Leer documento completo
Vista previa del texto
El siguiente programa muestra la declaración y uso de las macros:

.COMMENT
Programa: Macros1.ASM
Este programa muestra el uso de macros.
.MODEL TINY
; Declaración de variables
.DATA
cad db 'Ejemplo del uso de macros...',13,10,'$'
cad1 db 'Presiona una tecla...','$'
cad2 db 'Ejemplo del uso de la macrogotoxy...','$'
;Aquí se declaran las macros.

;Esta macro imprime una cadena que se pasa como parámetro.
;Utiliza la función 09h de la Int 21h del DOS.
imprime_cad MACRO cadena
lea dx,cadena
mov ah,09h
int 21h
ENDM

;Esta macro realiza una pausa en el programa hasta que una tecla se
;presione. Es elequivalente del readkey en Pascal.
Tecla MACRO
mov ah, 0h
int 16h
ENDM

;Esta macro posiciona el cursor en las coordenadas que se le indican como
;parámetros. Es el equivalente al GotoXY de Pascal.
gotoxy MACRO x,y
xor bh,bh
mov dl,x
mov dh,y
mov ah,02h
int 10h
ENDM;Esta macro limpia la pantalla.
;Utiliza la función 06h de la Int 10h del Bios.
limpiar_pantalla MACRO
mov ax,0600h
mov bh,17h
mov cx,0000h
mov dx,184fh
int 10h
ENDM

;Aquí comienza el cuerpo del programa principal
.CODE
inicio: ;Declaración del punto de entrada
limpiar_pantalla;Llamada a la macro
gotoxy 0,0 ;Colocar el cursor en 0,0
imprime_cad cad ;Imprime el primer mensaje
imprime_cad cad1 ;Imprime el segundo mensaje
tecla ;Espera a que se presione una tecla
gotoxy 30,12 ;Colocar el cursor en 30,12
imprime_cad cad2 ;Imprimir el tercer mensaje
gotoxy 50,24 ;Colocar el cursor en 50,24
imprime_cad cad1;Imprimir el segundo mensaje
tecla ;Esperar por una tecla
mov ax,4c00h ;Fin del programa y regresar al DOS.
int 21h
END inicio

Hacer la última macro, para el fin de programa y salida al DOS.

Programa: Proc2.ASM
Este programa ilustra la forma de utilizar procedimientos en los programas por medio de la instrucción Call y la forma de pasar los parámetros.

.MODELTINY
.DATA
Cad1 db 'Esta es una cadena de prueba...',13,10,'$'
.CODE
INICIO: ;Punto de entrada al programa
Mov DL,20 ;X=20
Mov DH,10 ;Y=10
Call Gotoxy ;llama al procedimiento GotoXY
Mov Ax,@data ;Dx->Cad1
Mov DS,Ax
Mov Dx, offset cad1
Call Imprime_Cad ;llama alprocedimiento Imprimir Cad1
Mov Ax,4C00h ;Terminar y regresar al dos
Int 21h ;
END INICIO

;Procedimiento: GotoXY
;Descripción: Coloca el cursor una posición específica de la pantalla
;Parámetros: Dl=X, Dh=Y
GotoXY PROC
Xor Bh,Bh
Mov Ah,02h
Int 10h
Ret
GotoXY ENDP

;Procedimiento: Limpia_Pantalla
;Descripción: Imprimeuna cadena de caracteres en la posición del cursor
;Parámetros: La dirección de la cadena en DX
Imprime_Cad PROC
Mov Ah,09h
Int 21h
Ret
Imprime_Cad ENDP

Programa: Proc3.ASM
Este programa ilustra la forma de utilizar procedimientos y datos externos en los programas por medio de las directivas de inclusión include y public.
.MODEL TINY
.INCLUDE proc22.ASM;Incluir el archivo proc22.asm
;el cual contiene la variable de cadena Cad1 y los procedimientos externos
;usados en este programa.
.DATA
Cad2 db 'Esta es una cadena de prueba 2...',13,10,'$'
.CODE
INICIO: ;Punto de entrada al programa
Mov Dl,20 ;X=20
Mov Dh,10 ;Y=10
Call GotoXY ;llama al procedimiento GotoXY...
tracking img