Cadena a numérico mediante Teorema fundamental de la numeracion y de regreso a cadena
Permite convertir una cadena de caracteres (numérica) a su valor numérico mediante el teorema fundamental de la numeracion., y de regreso permitiendo convertir su valor numérico a cadena para poder mostrar valores correctamente legibles por el usuario en su pantalla.
;Autor Hector Torres
;URL
.model small
.stack
.data
dato db 5 dup('0'),'$'
date db 5 dup('0'),'$'
cade dd 10000,1000,100,10,1 ;,'$' no se pone este signo porque no es cadena
nume dd 0 ;5 dup('0'),'$' lo inicializo en cero porque guarda el numero final y no una cadena de numeros
.386
.code
.startup
mov si,0
;***** limpia ****
mov ah,00h
mov al,03h
int 10h
;****** lee numeros
num:
mov ah,07h
int 21h
cmp al,58
jg num
cmp al,13
je conv
cmp al,48
jl num
; jne guarda no s necesita este salto etiqueta de todas pues es la sig instruccion
;guarda: esta etiqueta no es necesaria pues lo hace junto con la etiqueta num
mov dato[si],al
mov ah,02h
mov dl,dato[si]
int 21h
; sub dato[si],30h
inc si
cmp si,5
jne num
conv:
mov ah,09h
lea dx, dato
int 21h
mov ah,07h
int 21h
; je inicia
;****convierte****
;inicia:
mov di,4
mov si,4
; cmp cl,01h
; jne conv
; je desconv
;conv:
lea EAX,dato[si]
mov EDX,cade[di]
mul EDX
add EAX,nume
mov nume,EAX
dec di
dec si
cmp si,4
mov cl,01h
jne conv
mov ah,09h
lea dx,dato
int 21h
je desconv
desconv:
mov EAX,cade[di]
mov EDX,nume
div EDX
mov dl,al
add dl,30h
mov ah,02h
int 21h
.exit
end