Ensamblador - subrutina

 
Vista:

subrutina

Publicado por frisca (1 intervención) el 18/04/2005 19:21:12
Alguien sabria decirme una subrutina en ensamblador que pase un numero recibido en hexadecimal pasarlo a codigo ASCII???????''
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:subrutina

Publicado por Ge-ergon (3 intervenciones) el 28/04/2005 05:52:00
Hola!
Frisca

Supongo que lo que desea es imprimir numeros.
Por ejemplo si ax es igual a 41h, y deseas imprimir el numero que contiene ese registro, osea '65', debes utilizar una función de conversión de base 16 a base 10, luego de los datos obtenidos debes sumarle a cada número el valor 30h (48), para satisfacer el código Ascii de los números. Se imprime número por número, decenas, centenas, etc.

Te adjunto un ejemplo:
(Este ejemplo imprime el valor de AX, es decir solamente imprime numeros de 16 bit o hasta 65536, si desea imprimir números de 32 bits el código se debe cambiar completamente)
-------------cortar aqui---------
; Los códigos de ejemplo son compilados
; utilizando tasm 4.0 y tlink 4.0
ideal
model tiny
p286
codeseg
org 0100h
begin:
mov ax,[numero]
mov bx,0Ah
mov si,sp

residuo_not_cero:
xor dx,dx
div bx
push dx
cmp ax,0h
jne residuo_not_cero

pila_con_num:
pop ax
add ax,30h
int 29h
cmp si,sp
jne pila_con_num

int 20h
numero dw 0E14h
end begin
-------cortar aqui----------
ATT: geergon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar