• Domingo 22 de Diciembre de 2024, 03:10

Autor Tema:  Re: Como imprimir número en pantalla?  (Leído 28746 veces)

john435689

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Como imprimir número en pantalla?
« en: Viernes 26 de Septiembre de 2003, 05:57 »
0
Hola que tal a penas estoy aprendiendo a programar en ensamblador y quisiera saber como imprimir un número en pantalla

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Como imprimir número en pantalla?
« Respuesta #1 en: Miércoles 1 de Octubre de 2003, 05:50 »
0
Para imprimir numeros en pantalla primero se debe clasificar el tipo de numero que se va imprimir (enteros flotantes...), por ejemplo para un entero de un solo digito (el ejemplo mas simple, en decimal), que puede ser contenido en un byte, solo debemos trasformarlo a su equivalente en ASCII, y esta listo para ser mostrado por pantalla, y para hacer lo mismo con numero mayor de por decir 3 digitos podria utilizarse una division suceciva en 3 ciclos por ejemplo

mov al,3         ;numero a exhibir
add al,48        ;sumandole 48 al contenido ; de AL se lo trasforma en ASCII
mov ah,2
int 21h    ;muestra el ASCII de AL
;;**************************
para numeros de tres digitos:

       mov si,offset cadena
       xor ax,ax
       mov cx,3        ;3 digitos
       mov al,125         ;125 numero a exibir
       mov bl,10
ci1: div bl               ;1º(AL=12 .... AH=5)
                               ;2º(AL=1.......AH=2)
                               ;3º(AL=0.......AH=1)
       add ah,48
       mov [si],ah
       inc si
       mov ah,0
       loop ci1
       mov ah,9
     mov dx, offset cadena ;en .COM DS=CS
      int 21h      ;muestra cadena

.
.
.
cadena db '   ','$'

;;********************
para numeros de mas digitos es necesario mejorar el programa, y para flotantes hacer otros cambios

marc_omega

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Como imprimir número en pantalla?
« Respuesta #2 en: Viernes 21 de Octubre de 2005, 23:45 »
0
probablemente esta información ya no sea de utilidad para john435689 pero quizas sea de utilidad para gente que (como yo) busquen esta información después.

quisiera corregirle a Super_G un pequeño error en el código q mandó:

mov al,3 ;numero a exhibir
add al,48 ;sumandole 48 al contenido ; de AL se lo trasforma en ASCII
mov ah,2
int 21h ;muestra el ASCII de AL
;;**************************

y aqui la correción:

mov dl,3 ;numero a exhibir
add dl,48 ;sumandole 48 al contenido ; de AL se lo trasforma en ASCII
mov ah,2
int 21h ;muestra el ASCII de AL
;;**************************

Esto porque la función 02 de la INT 21h busca la información a mostrar en el registro DX.  Agrego que también en la segunda linea se puede sumar 30H (el equivalente de 48 en hexa) con el mismo resultado.

De paso agradezco a Super_G por la información, me sacó de un pequeño apuro!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Como imprimir número en pantalla?
« Respuesta #3 en: Sábado 22 de Octubre de 2005, 01:33 »
0
Tambien se puede sumar '0' que deja mas implicita la logica del programa  :devil:

Int 21/AH=02h:
http://www.ctyme.com/intr/rb-2554.htm

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.