org 100h
.model small
TITLE Programa que solicita una cadena y una posicion para mostrarla
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,"$"
caracter DB ?
varx DB ?
vary DB ?
vaa db 0
vtext db 100 dup('$') ;Declaracion del vector
.code ;Segmento de codigo
inicio: ;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 ;Funcion 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 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 ;Funcion 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 de sistema
mov ah,01h ;Funcion de captura con impresion en pantalla
int 21h ;Interrupcion
mov ax,4c00h ;Funcion de fin
int 21h ;Interrupcion
end inicio ;Fin de la function inicio
lunes, 16 de abril de 2018
Programa que mueve un caracter a la posicion que indique el usuario (macros)
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario