ورود

View Full Version : سوال: برنامه ماشین حساب / مهم لطفا کمک کنید



hamedir
دوشنبه 16 تیر 1393, 14:37 عصر
سلام دوستان خسته نباشید ، دوستان یک سوال من یک برنامه ماشین حساب ساده میخواستم که 2 عدد رو از کاربر بگیره و چهار عمل اصلی رو انجام بده من خودم تا یک جایی نوشتم ولی توی گرفتن عدد مشکل داره و این که خطا میده ممنون میشم یک کمک در حق من بکنید سپاس گذارم.



a db "******Program Calculatori******","$"
x db 6 dup(0)
y db 6 dup(0)
z db 6 dup(0)
ends


stack segment
dw 128 dup(0)
ends


code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax


mov ah,09h
mov dx,offset a
int 21h


mov bl,x
mov bh,y
mov ah,01
int 21h
cmp al,'+'
jz jam
cmp al,'-'
jz tafrigh
cmp al,'*'
jz zarb
cmp al,'/',
jz taghsim
jam:
mov z,bl
add z,bh
jmp end

tafrigh:
mov z,bl
sub z,bh
jmp end
zarb:
mov al,bl
mul nul
mov w,ax
taghsim:
mov bl,bl
mov ah,0
div bh
mov z,al
jmp end

vahid-p
شنبه 21 تیر 1393, 12:16 عصر
گرفتن یک عدد از کیبورد بارها در این انجمن مطرح شده.

این یه نمونه کد : ( 16 بیت و عدد در CX قرار میگیرد )

GETNUM PROC
MOV CX,0
MOV BL,10
MOV DH,0
WHILE:
MOV AH,01H
INT 21H
CMP AL,13
JZ ENDOFWHILE
SUB AL,'0'
MOV DL,AL
MOV AX,CX
MUL BL
ADD AX,DX
MOV CX,AX
JMP WHILE
ENDOFWHILE:
RET
ENDP

masoud.8086
یک شنبه 05 مرداد 1393, 11:08 صبح
سلام
اول بايد مشخص كني كه عددي كه كاربر وارد ميكنه تا چند رقم هست و بعدش چون اسمبلي همه چيزو به عنوان رشته ميشناسه بايد رشته ورودي از كاربرو تخشخيص بدي كه در بين كاركتر هاي 0 تا 9 هست اگر كه نيست كه هيچي و اگرم هست بايد به عدد تبديلشون كني.براي تبديل كردنشون بايد تعداد رشته ورودي از كاربرو بدوني منظور طوله رشته .بعدش بياي رشته وردي رو ارزش گذاري كني و عددو بدست بياري اگر رشته ورودي فقط يك كاركتر باشه نياز به اين كارا نيست ميتوني وقتي كاركترو گرفتي از 30h كمش كني تا عدد مورد نظر بدست بياد و عمليات جمع و.. روش انجام بدي..همچنين اگر تعداد عدد ورودي از يكي بيشتر بايد از ارايه استفاده كني كه تو اين برنامه كه من ميبينم طرز استفادش اشتباس
a db 11,11 dup(?) براي گرفتن يك رشته از ورودي ..
ميتوني به اين آدرس بري مثال از اون چيز ي كه شما ميخواي هست www.emu8086.mihanblog.com (http://emu8086.mihanblog.com)