View Full Version : سوال: وقفه خواندن عدد از ورودی ؟
ealvandi
پنج شنبه 07 خرداد 1388, 21:29 عصر
سلام
دوستان کسی وقفه خواندن عدد از ورودی رو میدونه ؟
tdkhakpur
جمعه 08 خرداد 1388, 14:47 عصر
سلام
در داخل تالار برنامه نویسی اسمبلی پاپیکی به اسم سورس ماکروهای اسمبلی قرار داده شده که داخل اون بیک ماکرو به اسم GETSTRهست که از ورودی یک رشته رو میگیره میتونید سورس اون رو با قرار دادن یک شرط برای دریافت عدد استفاده کنید.
موفق باشید.
engehsan
دوشنبه 11 خرداد 1388, 10:32 صبح
ميتوني رشته عددي رو از ورودي بگيري و به عدد تبديل كني . اين راحت تره
tdkhakpur
دوشنبه 11 خرداد 1388, 14:43 عصر
سلام
ميتوني رشته عددي رو از ورودي بگيري و به عدد تبديل كني . اين راحت تره
دارید سوال میکنید یا جواب میدید.
mo0ntazer
شنبه 30 خرداد 1388, 18:21 عصر
سلام
دوستان کسی وقفه خواندن عدد از ورودی رو میدونه ؟
GET_DATA PROC
MOV AH,09
LEA DX,S1
INT 21H
MOV AH,0AH
LEA DX,NUM_ASC
INT 21H
MOV CH,0
MOV CL,NUM_ASC[1]
LEA BX,NUM_ASC
ADD BX,2
BACK:
MOV POWER,CL
DEC POWER
MOV AH,0
MOV AL,[BX]
AND AL,0FH
CMP POWER,0
JE EW
L:
MUL TEN
DEC POWER
CMP POWER,0
JNE L
O:
ADD NUM,AL
INC BX
LOOP BACK
EW:
ADD NUM,AL
RET
GET_DATA ENDP
تویه num عدد ورودی رو می نویسه
kiuhnmgtrdcv
شنبه 30 خرداد 1388, 19:43 عصر
با این عدد میگیرید
mov ah,0ah
lea dx,str
int 21h
بعد به این تابع str2num اینطوری پارامتر انتقال میدید push str
این تابع اینطوری کار میکنه که اول رشته ورودی میبینه که ایا فاصله خالی داره یا نه اگر داره انها رو حذف میکنه بعد کاراکتر به کاراکتر چک میکنه که اصلا عدد هست یا نه (بین 0 تا 9 هست ؟)
بعد میره عدد به وسیله 123=3+20+100 عدد میسازد
str2num proc
push bp
push bp,sp
pusha
mov bx,0
mov si,[bp+4]
add si,5;
l1:cmp si,' '
jz l2
l2:
dec si
jmp l1
l3:
mov cx,1
l5:
cmp [si],'0'
jb l4
cmp [si],'9'
ja l4
mov ah,[si]
mov ah,0
sub ax,'0'
mul cx
add bx,ax
dec si
mov ax,10
mul cx
mov cx,ax
jmp l5
l4:
cmp [si],'-'
jnz neg bx
l6:
mov [bp+4],bx
popa
endp
من خودم دارم روی تابع بالایی کار میکنم و هنوز ایراداش به طور کامل برطرف نشده
kiuhnmgtrdcv
شنبه 30 خرداد 1388, 20:26 عصر
ولی برای خواندن اعداد یه رقمی از همون تایع 2 وقفه 10 استفاده کنید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.