programa con macro
gotoxy macro fila,col ;macro con parametros fila - columna
mov ah,02h ;cursor en pantalla
mov dh,fila ;x
mov dl,col ;y
mov bh,0h ;posicion en coordenadas pedidas
int 10h
endm
pantalla macro que ;macro pantalla
mov ah,02h ;posiciona cursor
mov dl,que ;almacena el valor del caracter
int 21h
endm
imprime macro eztryng ;macro para imprimir las lineas
mov dx,offset eztryng ;coloca el mensaje
mov ah,9 ;funcion para imprimir el mensaje
int 21h ;int en pantalla
endm
DATOS SEGMENT PARA PUBLIC
mensaje DB "INGRESE UN CARACTER: ",13,10,"$" ;lineas de codigo para los mensajes
mensaje2 DB "INGRESE X del 0 al 9: ",13,10,"$"
mensaje3 DB "INGRESE Y del 0 al 9: ",13,10,"$"
caracter DB 40 ;variable para el caracter a mostrar
varx DB ? ;variable de coordenada x
vary DB ? ;variable de coordenada y
vtext db 100 dup('$')
DATOS ENDS
CODIGO SEGMENT PARA PUBLIC 'code'
ASSUME CS:CODIGO,DS:DATOS
startup:
mov ax,DATOS ;referencia al segmento codigo
mov ds,ax
imprime mensaje ;macro imprime la variable mensaje ;registro SI en 0
mov si,00h ;se limpia el registro
leer:
mov ax,0000 ;limpia ax
mov ah,01h ;funcion que ingresa el caracter y lo imprime
int 21h
mov caracter[si],al ;caracter dentro del arreglo
inc si ;incremento
cmp al,0dh ;comparamos AL con el salto de linea
ja leer ;repite la funcion leer en caso de no ser igual
jb leer ;al dar salto de linea sigue el programa
mov dx,offset caracter ;funcion imprimir el caracter
mov ah,0ah ;imprimir salto de linea
int 21h
imprime caracter ;llamamos al macro imprime y le enviamos la variable caracter
imprime mensaje2 ;se llama al macro y se le manda el msj2
mov ah,01h
int 21h
sub al,30h ;se le resta 30h para convertir en numero
mov bl,al ;se pasa a BL
mov varx,al ;se guarda en varx
imprime mensaje3
mov ah,01h
int 21h
sub al,30h
mov bl,al
mov vary,al
mov ax,0003h ;limpia pantalla
int 10h
gotoxy vary,varx
pantalla caracter[0] ;llama al macro y manda el caracter a la posicion
mov ah,01h ;funcion para ingresar un caracter e imprimir en pantalla.
int 21h
mov ax,4c00h ;funcion para terminar el programa.
int 21h
CODIGO ENDS
end startup
Comentarios
Publicar un comentario