View Full Version : سوال: دریافت عدد سه رقمی از کیبورد +اسمبلی (شدیدا مورد نیاز)
micro_206
چهارشنبه 23 دی 1388, 06:40 صبح
با عرض سلام
دریافت عدد سه رقمی از کیبورد را می خواستم ، دو رقمی آن را نوشته ام هر کاری کردم سه رقمی آن نشد که کد دو رقمی آن در پایین است »
INPUT PROC
READ_KEY
DISP_CHR
AND AL,0FH
MOV BL,10
MUL BL
MOV CL,AL
READ_KEY
DISP_CHR
AND AL,0FH
ADD AL,CL
ADD AL,CH
RET
INPUT ENDP
mehdi5106
پنج شنبه 24 دی 1388, 22:06 عصر
این برنامه تبدیل یک رشته عددی به عدد:
str2int proc
mov ah,0ah
lea dx,arr
int 21h
mov ax,0
mov si,0
lea si,arr
mov cx,10
l1: mov tmp,cx
cmp [si],'0'
jnae l2
cmp [si],'9'
jnbe l2
mov cx,10
mul cx
mov cl,[si]
and cx,000fh
add ax,cx
l2: inc si
mov cx,tmp
loop l1
mov num,ax
ret
str2int endp
micro_206
جمعه 02 بهمن 1388, 11:48 صبح
:لبخندساده:سلام با تشکر
من یک آرایه رشته را ، چه جوری از کیبورد بگیرم
من برای سه عدد موندم
tdkhakpur
جمعه 02 بهمن 1388, 13:38 عصر
با توجه به کد شما باید این شکلی بشود.
INPUT PROC
mov bx, 0
mov cx, 3 ; تعداد ارقام را مشخص میکند
loop_1:
push cx
push bx
READ_KEY
DISP_CHR
pop bx
mov cx, ax ; ذخیره برای جلوگیری از تغییر
mov ax, bx ;
mov bl, 10
mul bl
mov bx, ax
mov ax, cx ; عدد ذخیره شده را باز یابی کنید
AND AX,000FH
add bx, ax
pop cx
loop loop_1
RET
INPUT END
دستی کد شد ولی با توجه به پروسه های شما الگوریتم کلی باید این شکلی باشد.
bx مقدار برگشتی شما میشود.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.