SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: tirengarfio en Miércoles 12 de Marzo de 2008, 21:39

Título: Duda Sobre Registros
Publicado por: tirengarfio en Miércoles 12 de Marzo de 2008, 21:39
Saludos,

ejecutando paso a paso el codigo de aqui debajo, tras ejecutar la linea "int 21h(*)", el valor de al pasa a ser 24.

¿Alguien me sabe de decir por qué ocurre eso?


Código: Text
  1.  
  2. DOSSEG
  3.   .MODEL SMALL
  4.   .STACK 100h
  5.   .DATA
  6.  
  7. cadena   DB "Has pulsado la tecla:$"
  8.  
  9.  
  10.   .CODE
  11.  
  12.  
  13. INICIO:
  14.  
  15.   mov ax, @data
  16.   mov ds, ax
  17.  
  18.  
  19.  
  20.   mov ah, 08h
  21.   int 21h
  22.  
  23.  
  24.  
  25.   lea dx, cadena
  26.   mov ah, 09h
  27.   int 21h (*)
  28.  
  29.  
  30.   mov dl, al
  31.   mov ah, 02h
  32.   int 21h
  33.  
  34.  
  35.  
  36.  
  37. FIN:
  38.  
  39.   mov ah, 4ch
  40.   int 21h
  41.   end INICIO
  42.  



Un saludo

Javi
Título: Re: Duda Sobre Registros
Publicado por: Eternal Idol en Jueves 13 de Marzo de 2008, 01:28
http://www.ctyme.com/intr/rb-2554.htm (http://www.ctyme.com/intr/rb-2554.htm)

Return:
AL = last character output (despite the official docs which state
nothing is returned) (at least DOS 2.1-7.0)


Y lo es, fijate cual es el valor ASCII de $.