; 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