Convertir
Convierte una cadena a numérica. Utiliza registros de 32 bits, y no permite el uso de caracteres "no numéricos"
;Autor Hector Torres
;URL
.model small
.stack
.data
dato db 5 dup(' '),'$'
date db 5 dup(' '),'$'
cade dd 10000,1000,100,10,1,'$'
nume dd 5 dup('0'),'$'
.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,13
je conv
cmp al,48
jl num
cmp al,58
jg num
; jne guarda no se necesita
; guarda: no se necesita
mov dato[si],al
mov ah,02
mov dl,dato[si]
int 21h
sub dato[si],30h
inc si
cmp si,6
jne num
; je inicia no se necesita
;****convierte****
;inicia: que hace en este bloque ????
mov di,0
mov si,0
; cmp cl,01h
; jne conv
; je desconv
conv:
lea EAX,dato[si]
; mov EDX,cade[di]
mul cade[DI]
add nume,EAX
; 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