PDA

View Full Version : سوال: تبدیل یک رشته عددی به عدد "123" به 123



m.malek1
دوشنبه 18 دی 1391, 09:39 صبح
سلام من یک برنامه نوشتم که یک رشته رو میگیره و آن را تبدیل به عدد میکنه ولی مشکلی که این برنامه داره اینه که زمانی که عدد رو زیر 10 وارد میکنم برنامه اونو به عدد تبدیل میکه ولی زمانی که عدد رو مثلا 156 وارد می کنم درست تبدیل نمیکنه ممنون میشم اگه کسی بلده کمک کنه
stksg segment stack
db 32 dup("stack")
stksg ends
data segment para 'data'
string db 6 dup(' '),"$"
msg1 db 'Plz Enter a number:',"$"
msg2 db 'Number is:',"$"


strlist label byte
max db 20
len db ?
buffer db 10 dup('')
data ends
code segment para 'code'
main proc far
assume cs:code,ds:data,ss:stksg
mov ax,data
mov ds,ax
;;;;;;;;;;;;;;;;;;;;;;;
mov ah,6h
mov al,25
mov ch,0
mov cl,0
mov dh,24
mov dl,79
mov bh,7
int 10h

mov ah,2h
mov dh,0
mov dl,0
mov bh,0
int 10h

lea dx,msg1
mov ah,9h
int 21h

mov ah,0ah
lea dx,strlist
int 21h

lea bx,buffer
mov ax,0
mov dl,0

loop: mov cx,10
mul cx
mov cl,[bx]
and cx,000fh
add ax,cx
inc dl
inc bx
cmp dl,len
jne loop


lea bx,string
add bx,5
mov cx,10

divloop: mov dx,0
div cx
add dl,30h
mov [bx],dl
dec bx
cmp ax,0
jne divloop

mov ah,2h
mov dh,1
mov dl,0
mov bh,0
int 10h

lea dx,msg2
mov ah,9h
int 21h

lea dx,string
mov ah,9h
int 21h

mov ax,4c00h
int 21h
;;;;;;;;;;;;;;;;;;;;;;;;;;;
main endp
code ends
end main

ahmaduse
دوشنبه 25 دی 1391, 11:31 صبح
چرا dl رو add کردین مگه باقیمانده تو dh k نمیره؟؟؟؟
خواهشا جواب بدین..