; You may customize this and other start-up templates; ; The location of this template is c:\emu8086\inc\0_com_template.txt org 100h gotoxy macro fila,col ;macro que pone el cursor en la posicion deseada mov ah,02h ;funcion imprimir caracter mov dh,fila ;ingresamos la coordenada de x mov dl,col ;ingresamos la coordenada de y mov bh,0h ;numero de pagina int 10h ;interrupcion endm ;fin del macro pantalla macro que ;macro que imprime el primer caracter de la palabra escrita mov ah,02h ;funcion imprimir caracter mov dl,offset que ;ponemos el mensaje en dl int 21h ;interrupcion endm ;fin del macro imprime macro eztryng ;macro que imprime los mensajes que le enviemos mov dx,offset eztryng ;ponemos elmensaje en dx mov ah,9 ;funcion imprimir variable int 21h ;interrupcion endm ;fin del macro .data ;segmento de datos con variables mensaje DB "INGRESE UN CARACTER: ",13,10,"$" mensaje2 DB "INGRESE X del 0 al 9: ",13,10,"$" mensaje3 DB "INGRESE Y del 0 al 9: ",13,10,"$" mensaje4 DB "Que letra quieres",13,10,"$" caracter DB ? varx DB ? vary DB ? vaa db 0 vtext db 100 dup('$') ;Declaracion del vector .code ;segmento de codigo startup: ;funcion de inicio mov ax,@data ;almacenamos lo que esta en el segento data mov ds,ax ;movemos ax a ds imprime mensaje ;llamamos al macro imprime y le enviamos la variable mensaje mov si,00h ;limpiamos el registro si mov caracter,0 ;limpiamos la variable caracter leer: ;inicio de la funcion leer mov ax,0000 ;limpiamos ax mov ah,01h ;fincion de ingreso de caracter con impresion del mismo en pantalla int 21h ;interrupcion mov caracter[si],al ;ponemos el caracter tecleado en el arreglo caracter inc si ;incrementamos si cmp al,0dh ;comparamos al=salto de linea ja leer ;de no ser igual repite la funcion leer para ingresar otro caracter jb leer ;en caso de que al=salto de linea continua el programa ;mov cx,si mov ah,02h ;funcion imprimir caracter mov dl,10 ;imprimimos un salto de linea int 21h ;interrupcion imprime caracter ;llamamos al macro imprime y le enviamos la variable caracter mov ah,02h ;funcion imprime caracter mov dl,10 ;imprimimos un salto de linea int 21h ;interrupcion imprime mensaje2 ;llamamos al macro imprime y le enviamos la variable mensaje2 mov ax,0000 ;limpiamos ax mov ah,01h ;fincion de ingreso de caracter con impresion del mismo en pantalla int 21h ;interrupcion sub al,30h ;le restamos 30h al caracter ingresado para transformarlo en un numero mov bl,al ;ponemos el numero en bl mov varx,al ;ponemos el numero en varx imprime mensaje3 ;llamamos al macro imprime y le enviamos la variable mensaje3 mov ah,01h ;fincion de ingreso de caracter con impresion del mismo en pantalla int 21h ;interrupcion sub al,30h ;le restamos 30h al caracter ingresado para transformarlo en un numero mov bl,al ;ponemos el numero en bl mov vary,al ;ponemos el numero en vary mov ax,0003h ;funcion que limpia la pantalla int 10h ;interrupcion imprime mensaje4 mov ah,01h ;fincion de ingreso de caracter con impresion del mismo en pantalla int 21h ;interrupcion sub al,30h ;le restamos 30h al caracter ingresado para transformarlo en un numero gotoxy vary,varx ;llamamos al macro gotoxy y le enviamos las variables vary y varx mov ah,00 ;limpiamos la parte alta de ax mov si,ax ;ingresamos en si la posicion del caracter que deseamos imprimir ;kol: pantalla caracter[si] ;llamamos al macro pantalla y le enviamos el caracter en la posicion deseada ;inc si ;loop kol mov ah,01h ;funcion de captura con impresion en pantalla int 21h ;interrupcion mov ax,4c00h ;funcion de fin int 21h ;interrupcion end startup ;fin
No hay comentarios:
Publicar un comentario