• Viernes 15 de Noviembre de 2024, 13:03

Autor Tema:  Lecturas De Teclado  (Leído 2824 veces)

maikmr

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Lecturas De Teclado
« en: Sábado 30 de Octubre de 2004, 04:43 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Lecturas De Teclado
« Respuesta #1 en: Viernes 12 de Noviembre de 2004, 23:20 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Lecturas De Teclado
« Respuesta #2 en: Sábado 13 de Noviembre de 2004, 20:40 »
0
Hola,
necesito leer un string completo y no solo una tecla, tengo el siguiente codigo para leer el string
Código: Text
  1.  
  2.             mov  Ah, 0Ah  &#59; se captura una cadena
  3.             mov  Dx, Offset cad&#59; direccion de la variable cadena        
  4.             Int  21h
  5.  
  6.  

donde "cad" es

Código: Text
  1.  
  2.  cad   DB 15,0,15 DUP(?)
  3.  
  4.  

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
  1.  
  2.   mov  Dx, Offset cad
  3.   Mov  Ah,9    
  4.   Int  21h
  5.  
  6.  

Pero no me muestra lo que leí por teclado.
Ojalá alguien me responda. Gracias  :D

deldar

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Lecturas De Teclado
« Respuesta #3 en: Lunes 15 de Noviembre de 2004, 10:30 »
0
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
Quien de verdad sabe de qué habla, no encuentra razones para levantar la voz.

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Lecturas De Teclado
« Respuesta #4 en: Viernes 17 de Diciembre de 2004, 16:47 »
0
Código: Text
  1.  
  2.             mov ah,10&#59;;funcion de lectura del teclado en una cadena estructurada
  3.             mov dx,offset cadena
  4.             int 21h
  5.            &#59;;******se termino de leer en la cadena*****
  6.             mov dx,offset cadena
  7.             mov cl,[dx+1]
  8.             add dx,2&#59;;
  9.             mov si,dx
  10.             add si,cl &#59;;final de la cadena
  11.             mov [si],'$' delimitador d ecadena
  12.             mov ah,09h&#59;;funcion mostrar cadnea
  13.             int 21h    
  14.  
  15. int 20h
  16.  
  17. cadena db 10,10,'----------';; cadena  estructurada
  18. final      db '$'&#59;delimitador de cadena
  19.  
  20.  
  21.