Hola a todos:
Primero quiero agradecer a Amilius por haberme dado una pista de como resolver el problema.
Y... Como nobleza obliga..., ahora mando para todos los que puedan necesitarlo, el codigo con la solucion a la que pude llegar gracias a su ayuda.
Aclaro que esta compilado con TASM.
;####################################################
; ENUNCIADO: Convertir una cadena de 4 caracteres formada por digitos
; a un numero entero.
;
; NOTA: La cadena debe ser ingresada por codigo y no debe
; ser validada.
;
;====================================================
.model SMALL
.stack
.data
CadNum db '3245' ; Cadena con digitos.
Entero dw 0 ; Numero entero.
Factor db 10 ; Factor multiplicador.
.code
INICIO: mov AX,@data ; Apuntar al segmento de datos.
mov DS,AX
mov SI,offset CadNum ; Apuntar al digito mas
; significativo.
CLD ; Establecer el sentido de
; de recorrido de la cadena
; de izquierda a derecha.
mov CX,3 ; Poner el contador de pro-
; grama en 4.
C1: mov AX,Entero ; Multiplicar el contenido
mul Factor ; de Entero por 10.
mov Entero,AX ;
xor AX,AX ; Limpiar AX
lodsb ; Leer el caracter apuntado.
sub AL,30h ; Pasar de caracter a numero.
add AX,Entero ; Sumar el numero resultante
mov Entero,AX ; a Entero.
loop C1 ; Ir a leer otro digito.
FIN: mov AH,4Ch
int 21h
end INICIO
end
;====================================================
;####################################################################
; ENUNCIADO: Convertir una cadena de 4 caracteres formada por digitos
; a un numero entero.
;
; NOTA: La cadena debe ser ingresada por codigo y no debe
; ser validada.
;
;====================================================================
.model SMALL
.stack
.data
CadNum db '3245'
Entero dw 0
Factor db 10
.code
INICIO: mov AX,@data
mov DS,AX
mov SI,offset CadNum ; Apuntar al digito mas
; significativo.
CLD ; Establecer el sentido de
; de recorrido de la cadena
; de izquierda a derecha.
mov CX,3 ; Poner el contador de pro-
; grama en 4.
C1: mov AX,Entero ; Multiplicar el contenido
mul Factor ; de Entero por 10.
mov Entero,AX ;
xor AX,AX ; Limpiar AX
lodsb ; Leer el caracter apuntado.
sub AL,30h ; Pasar de caracter a numero.
add AX,Entero ; Sumar el numero resultante
mov Entero,AX ; a Entero.
loop C1 ; Ir a leer otro digito.
FIN: mov AH,4Ch
int 21h
end INICIO
end
;====================================================
Un abrazo para todos