jueves, 12 de abril de 2018

Programa que coloca un caracter en la posicion dada de acuerdo a parámetros ingresados por teclado


TITLE Cadena que solicita una cadena y una posicion para mostrarla

gotoxy macro fila,col ;macro gotoxy  y parametros  de fila,col
    mov ah,02h   ;  colocacion cursor en pantalla
    mov dh,fila  ;coordenada x para colocacion de cursor dh
    mov dl,col   ;coordenada y para colocacion de cursor dl
    mov bh,0h   ; posiciona en coordenadas pedidas
    int 10h      ;interrupcion de video
endm   ;termina  macro

pantalla macro que  ;declaracion de macro pantalla parametro que
     mov ah,02h       ;complemento interrupcion 21h
     mov dl,que   ;que es el caracter capturado
     int 21h      ;interrupcion DOS
endm  ;termina  macro

imprime macro eztryng  ;macro con parametro eztryng
     mov dx,offset eztryng  ;coloca mensajes
     mov ah,9               ;imprime  variables
     int 21h                ;interrupcion DOS
endm                   ;termina  macro

.data    ;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 40   ; variable para capturar cadena
    varx DB ?        ; variable para capturar coordenada x
    vary DB ?        ; variable para capturar coordenada y
vtext db 100 dup('$')

.code

startup:
    mov ax,@data  ;asignacion de datos ax
    mov ds,ax     ;asignacion de datos al segmento de datos

imprime mensaje ;llama macro imprime con el parametro 'mensaje'
   mov si,00h      ;limpia el apuntador SI
  
 leer:          ;declaracion de metodo leer   
    mov ax,0000    ;limpia ax
    mov ah,01h     ;complemento para interrupcion 21h captura
    int 21h        ;interrupcion DOS
    mov caracter[si],al ;guarda el dato capturado en variable caracter
    inc si         ;incrementa apuntador si
    cmp al,0dh     ;compara si la ultima tecla presionada fue enter
   ja coordenadas ;si cumple brinca a coordenadas
   jb leer        ;sino cumple vuelve a ejecutar leer

coordenadas:    ;declaracion de metodo coordenadas
     mov dx,offset caracter ;coloca en dx el caracter ingresado
     mov ah,0ah             ;complemento de interrupcion 21h lee cadena de texto por teclado
     int 21h                ;interrupcion DOS
    imprime caracter       ;llama macro imprime con parametro caracter
 imprime mensaje2       ;llama macro imprime con parametro mensaje2
     mov ah,01h             ;complemento de interrupcion 21h Eco de un caracter
     int 21h                ;interrupcion DOS
     sub al,30h             ;resta 30h para convertir al valor numerico
     mov bl,al              ;mueve al a bl
     mov varx,al            ;guarda al en varx (coordenada x)
imprime mensaje3       ;coordenadas y ( se repite para coordenada y)
      mov ah,01h
      int 21h
      sub al,30h
      mov bl,al
      mov vary,al          
      mov ax,0003h           ;complemento interrupcion 10h modo texto
      int 10h                ;interupccion de video

gotoxy vary,varx       ;llama macro gotxy con los parametros vary y varx como columna y fila
pantalla caracter[0]   ;llama a macro pantalla para mostrar primer caracter


      mov ah,01h             ;complemento de interrupcion 21h Eco de un caracter
      int 21h                ;interrupcion DOS
      mov ax,4c00h           ;funcion de fin
      int 21h                ;interrupcion DOS
end startup            ;fin de funcion principal

No hay comentarios.:

Publicar un comentario

Conclusión   del equipo #1: Puertos paralelos  Un puerto paralelo es una interfaz entre un ordenador y un periférico. El puerto paralelo ...