kiuhnmgtrdcv
سه شنبه 19 خرداد 1388, 12:21 عصر
سلام
فرض کنید رشته "9092" داشته باشیم چطور میتونیم اینو به عدد تبدیل کنیم ؟
من یکم از این برنامه نوشتم ولی نمیدونم وقتی افست یه رشته میگیریم و انرا زیاد میکنیم با چه شرطی میشه فهمید که به انتهای رشته رسیدیم لطفا راهنماییم کنید
title ehsan
.model small
.stack 100h
.data
n1 dw "121$"
fz db 8 dup(' '),"$"
str1 db "65$";
.code
main proc
mov ax,@data
mov ds,ax
push n1
push offset fz
call convert_string_num
mov ah,9
mov dx,offset fz
int 21h
mov ax,4c00h
int 21h
main endp
convert_string_num proc
push bp
mov bp, sp
push si
push ax
push bx
push cx
push dx
mov ax, word ptr[bp+06];string
mov si, word ptr[bp+04];jaye number mafroz
lea di,ax
divloop:
inc di
sub [di], 30h ; convert
mov [si], dx
inc si
cmp [di],"$" ;sharte tohi bodane number ???
jne divloop
;mov cl, bh ; insert sign to string
;mov [si], cl
pop dx
pop bx
pop cx
pop ax
pop si
pop bp
ret 4
convert_string_num endp
end main
فرض کنید رشته "9092" داشته باشیم چطور میتونیم اینو به عدد تبدیل کنیم ؟
من یکم از این برنامه نوشتم ولی نمیدونم وقتی افست یه رشته میگیریم و انرا زیاد میکنیم با چه شرطی میشه فهمید که به انتهای رشته رسیدیم لطفا راهنماییم کنید
title ehsan
.model small
.stack 100h
.data
n1 dw "121$"
fz db 8 dup(' '),"$"
str1 db "65$";
.code
main proc
mov ax,@data
mov ds,ax
push n1
push offset fz
call convert_string_num
mov ah,9
mov dx,offset fz
int 21h
mov ax,4c00h
int 21h
main endp
convert_string_num proc
push bp
mov bp, sp
push si
push ax
push bx
push cx
push dx
mov ax, word ptr[bp+06];string
mov si, word ptr[bp+04];jaye number mafroz
lea di,ax
divloop:
inc di
sub [di], 30h ; convert
mov [si], dx
inc si
cmp [di],"$" ;sharte tohi bodane number ???
jne divloop
;mov cl, bh ; insert sign to string
;mov [si], cl
pop dx
pop bx
pop cx
pop ax
pop si
pop bp
ret 4
convert_string_num endp
end main