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  &#59; se captura una cadena            mov  Dx, Offset cad&#59; 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&#59;;funcion de lectura del teclado en una cadena estructurada            mov dx,offset cadena            int 21h           &#59;;******se termino de leer en la cadena*****            mov dx,offset cadena            mov cl,[dx+1]             add dx,2&#59;;            mov si,dx            add si,cl &#59;;final de la cadena            mov [si],'$' delimitador d ecadena            mov ah,09h&#59;;funcion mostrar cadnea            int 21h      int 20h cadena db 10,10,'----------';; cadena  estructuradafinal      db '$'&#59;delimitador de cadena   

Navegación

[0] Índice de Mensajes

Ir a la versión completa