Escolar Documentos
Profissional Documentos
Cultura Documentos
Memoria Técnica
Hemisemestre: Primero
Una vez ingresado un dígito, no es permitido hacer rectificaciones, es decir, borrar el digito.
El algoritmo utilizado para transformar de decimal a binario fue proporcionado por Víctor
Rocha (1), y modificado para que cumpla con los requisitos del programa. El algoritmo
utilizado para la conversión de binario a hexadecimal, es de autoría propia.
Código fuente :
name "Convertidor"
org 100h
jmp start
ced db 10 DUP(?),'$'
xced db 10 DUP(?),'$'
bin db 32 DUP(?),10,13,'$'
hex db 8 DUP(?),'$'
residuo db ?
numero db ?
aux db ?
i dw ?
j db ?
acum db ?
start:
mov cx,0Ah
mov si,0h
ingresar:
;Validar si es un numero
cmp al,2Fh
jl ingresar
cmp al,3Ah
jg ingresar
loop ingresar
mov i,si
1. Tomado de : http://mis-algoritmos.com/ejemplos/asm-6.html
sub i,1
mov cx,32
Binario:
push cx
mov si,0
;
mov Ah,00h;Aseguramos residuo de 0
mov Al,numero
mov Bl,2
div Bl
mov residuo,Ah
mov numero,Al
mov al,numero
add al,30h
mov xced[si],al
mov al,residuo
mov bl,10 ;Movemos a bl 10
mul bl ;Multiplicamos 10 por el número a convertir
mov aux,al ;Asignamos a aux el residuo
inc si
;
mov cx,i
ciclo:
mov al,xced[si]
sub al,30h ;;Obtención de valor real
add aux,al ;Lo agregamos al número anterior multiplicado por 10
mov bl,aux ;Éste ya no necesita ser multiplicado
mov numero,bl ;El número resultante a bl
1. Tomado de : http://mis-algoritmos.com/ejemplos/asm-6.html
mov Ah,00h;Aseguramos residuo de 0
mov Al,numero
mov Bl,2
div Bl
mov residuo,Ah
mov numero,Al
mov al,numero
add al,30h
mov xced[si],al
inc si
mov al,residuo
mov bl,10
mul bl
mov aux,al
loop ciclo
dec si
mov i,si
pop cx
mov di,cx
mov al,residuo
add al,30h
mov bin[di],al
loop Binario
mov di,32
push si
mov cx,8
mov si,7
hexdeci:
push cx
mov j,0
mov acum,0
mov cx,4
hexad:
mov al,bin[di]
sub al,30h
1. Tomado de : http://mis-algoritmos.com/ejemplos/asm-6.html
cmp j,0
jz x0
cmp j,1
jz x1
cmp j,2
jz x2
cmp j,3
jz x3
x0:
mov bl,1
mul bl
jmp sig
x1:
mov bl,2
mul bl
jmp sig
x2:
mov bl,4
mul bl
jmp sig
x3:
mov bl,8
mul bl
jmp sig
sig:
add acum,al
dec di
inc j
loop hexad
cmp acum,0Ah
jz s1
jnge sum
jnle sum3
s1:
add acum,55
mov al,acum
mov hex[si],al
jmp sali
sum:
add acum,30h
1. Tomado de : http://mis-algoritmos.com/ejemplos/asm-6.html
mov al,acum
mov hex[si],al
jmp sali
sum3:
add acum,37h
mov al,acum
mov hex[si],al
jmp sali
sali:
pop cx
dec si
loop hexdeci
1. Tomado de : http://mis-algoritmos.com/ejemplos/asm-6.html
ret
1. Tomado de : http://mis-algoritmos.com/ejemplos/asm-6.html