Гыхм... Вот пример простенькой проги на асме для преобразования строки в число:
Код:
stak segment stack
db 128 dup (?)
stak ends
data segment
sc db '123' ; string content
sl dw 3 ; string length
dc dw ? ; convert result
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
; detect adress of last symbol in string
lea di, sc
add di, sl
dec di
; initialize si and bl
mov si, sl
mov bx, 1
; initialize variable 'dc'
mov ax, 0
mov dc, ax
; start convert circle
convert:
; verify: si > 0; else goto to end circle
cmp si, 0
je cnv_end
; read and covert digit
mov ah, 0
mov al, [di]
sub al, 48
mul bx
; summ with 'dc'
add ax, dc
mov dc, ax
; decrease si and di
dec si
dec di
; mul bl 10x
mov ax, bx
mov bx, 10
mul bx
mov bx, ax
; goto circle start
jmp convert
cnv_end:
; cotvert complit, see variable 'dc'
mov ah,4ch
int 21h
code ends
end start
Проверял у себя - вроде все работает.