ورود

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 مقدار برگشتی شما میشود.