Programación General > ASM (Ensamblador)
Lecturas De Teclado
(1/1)
maikmr:
Hola compañeros del foro! disculpe me puede alguin pasar algun codigo que realize lecturas
de teclado y luego imprima lo que se digito. Esto lo necesito para Turbo ensamblador(TASM), o por lo menos medigan como hacerlo. Les agradeseria demaciado la ayuda.
ivanjah:
Hola, este codigo lo encontre en este mismo foro, lee un caracter del teclado y lo muestra en la pantalla
model small
.stack 100h
.code
start:
;Aqui lees el caracter y se guarda en al
mov ah,01
int 21h
;movemos el caracter al registro dl para despues visualizarlo
mov dl,al
;visualizamos lo que hay en dl mediante la funcion 02 de la int 21h
mov ah,02
int 21
;leemos otro caracter para alcanzar a ver lo que hicimos
mov ah,01
int 21h
;salida del programa
mov ax,4c00h
int 21h
end start
Espero te sirva
cHoLeY:
Hola,
necesito leer un string completo y no solo una tecla, tengo el siguiente codigo para leer el string
--- Código: Text --- mov Ah, 0Ah ; se captura una cadena mov Dx, Offset cad; direccion de la variable cadena Int 21h
donde "cad" es
--- Código: Text --- cad DB 15,0,15 DUP(?)
mi problema es que nose como mostrar en pantalla esa cadena que leí por teclado. He intentado mostrarla como se muestra en pantalla un string "estático"
--- Código: Text --- mov Dx, Offset cad Mov Ah,9 Int 21h
Pero no me muestra lo que leí por teclado.
Ojalá alguien me responda. Gracias :D
deldar:
Esta es una descripcion de la funcion que usas para mostrar la cadena por pantalla:
INT 21 - DOS 1+ - WRITE STRING TO STANDARD OUTPUT
AH = 09h
DS:DX -> '$'-terminated string
Return: AL = 24h (the '$' terminating the string, despite official docs which
state that nothing is returned) (at least DOS 3.3-5.0)
Notes: ^C/^Break are checked, and INT 23 is called if either pressed
standard output is always the screen under DOS 1.x, but may be
redirected under DOS 2+
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
SeeAlso: AH=02h,AH=06h"OUTPUT"
Tal y como indica la cadena debe terminar en "$" por lo que yo inicializaría la variable "cad" con el valor "$" y me aseguraria que la cadena es inferior al tope de "cad" -1 (o aumentaría en 1 cad) para asegurarme de que quede al menos un valor "$" en la cadena.
P.D: esta interrupción muestra la cadena hasta encontrar el primer símbolo "$" con lo que si hay más el resto no se mostrarán.
Saludos. Deldar
Super_G:
--- Código: Text --- mov ah,10;;funcion de lectura del teclado en una cadena estructurada mov dx,offset cadena int 21h ;;******se termino de leer en la cadena***** mov dx,offset cadena mov cl,[dx+1] add dx,2;; mov si,dx add si,cl ;;final de la cadena mov [si],'$' delimitador d ecadena mov ah,09h;;funcion mostrar cadnea int 21h int 20h cadena db 10,10,'----------';; cadena estructuradafinal db '$';delimitador de cadena
Navegación
Ir a la versión completa