برنامه ماشین حساب ساده چهار عمل اصلی با اسمبلی با داکیومنت

 

داکیومنت فارسی توضیحات سورس کد پروژه

دسته :

پروژه های برنامه نویسی زبان اسمبلی

نوع فایل:

. , .exe

توضیحات:



توضیحات :

این برنامه اسمبلی قادر به انجام چهار عمل اصلی جمع ، تفریق ، ضرب و تقسیم بر روی اعداد صحیح می باشد ، در این برنامه ابتدا عملوند اول گرفته می شود سپس عملگر +-%* توسط کاربر مشخص می شود و در نهایت عملوند دوم گرفته می شود و حاصل این محاصبه نمایش داده می شود . لازم
به دکر است که این کاملا بوده و قادر به محاسبه عملیات ریاضی پیچیده نمی باشد .

توجه بفرمایید که توضیحات سورس کدهای این پروژه بصورت فارسی نیز همراه پروژه ارسال خواهد شد. 

برای مشاهده تصویر با اندازه اصلی روی آن کلیک کنید

برای مشاهده تصویر با اندازه اصلی روی آن کلیک کنید

======

بخشهایی از سورس کد اسمبلی این پروژه : 

// تعریف نوع و مدل برنامه برای کامپایلر
.model small
//مقدار حافظه مورد نیاز برای پشته برنامه که عملیات محاسباتی در آن انجام خواهد شد
.stack 100h
//شروع دیتا برنامه
.data
//تعریف متغیرها و نوع آنها
a_h dw 0
a_l dw 0b_h dw 0
b_l dw 0

c_h dw 0
c_l dw 0

i db 0
flg db 1
opr db 0
// رشته calculator که در برنامه چاپ می شود
item1 db “CALCULATOR $”
// مدل برنامه و شروع کد برنامه
.۳۸۶
.code
//شروع دستورات اصلی و مقداردهی های اولیه
main proc
mov ax,@data
mov ds,ax
call clearscr
mov dl,30
mov dh,1
mov cx,offset item1
call write
call nextline

l0:
mov cx,10
mov a_h,0
mov a_l,0
l1:
mov ah,07h
int 21h ; //فراخوانی مقادیر ورودی
cmp al,30h
jb l2
mov dl,al
mov ah,02h
int 21h ; //چاپ کاراکترها
sub al,30h
cmp al,0ah
mov ah,0
push ax
mov ax,a_h
mul cx
pop bx
add ax,bx
mov a_h,ax
jmp l1
l2:
// دستورات شناخت و مقایسه اینکه کدام عملگر الان فراخوانی شده
cmp al,”+” ;+
je l9
cmp al,”.” ;+
je l11
cmp al,”-” ;-
je l9
cmp al,”*” ;*
je l9
cmp al,”/” ;/
je l9
cmp al,1bh ;// لغو کردن
je l7
cmp al,0dh ;// کد تایید توسط کاربر
je l8
jmp l1
l8:
// قطعه کد رفتن به خط بعدی و نمایش نتیجه محاسبات
call nextline
mov dl,” ”
mov ah,02h
int 21h
mov dl,”=”
mov ah,02h
int 21h
mov dl,” ”
mov ah,02h
int 21h
// قطعه کد مربوط به چهار عمل اصلی
cmp opr,”+”
je l_add
cmp opr,”-”
je l_sub
cmp opr,”*”
je l_mul
cmp opr,”/”
je l_div
jmp l1
l9:
mov opr,al
mov dl,al
mov ah,02h
int 21h ; // چاپ کاراکتر عملگر
mov ax,a_h
mov b_h,ax

mov ax,a_l
mov b_l,ax
jmp l0

l11:
mov dl,”.”
mov ah,02h
int 21h ;; // چاپ علامت اعشار .
mov cx,10
l011:
mov ah,07h
int 21h ; // فراخوانی کلیدها
cmp al,30h
jb l2
mov dl,al
mov ah,02h
int 21h ; // چاپ مقادیر وارد شده
sub al,30h
mov ah,0
mov dx,ax
mov ax,0
div cx

add a_l,ax

mov ax,cx
mov bx,10
mul bx
mov cx,ax
jmp l011

// قطعه کد عملیات جمع در ماشین حساب
l_add:
mov ax,b_l
mov bx,a_l
add ax,bx
mov c_l,ax

mov ax,a_h
mov bx,b_h
adc ax,bx
mov c_h,ax

call display1
jmp l0

// قطعه کد عملیات تفریق ماشین حساب
l_sub:
mov ax,b_l
mov bx,a_l
sub ax,bx
mov c_l,ax

mov ax,b_h
mov bx,a_h
sub ax,bx
mov c_h,ax

call display1
jmp l0

// قطعه کد عملیات ضرب ماشین حساب
l_mul:
mov ax,b_l
mov bx,a_l
mul bx
mov c_l,dx

mov ax,b_l
mov bx,a_h
mul bx
add c_l,ax
adc c_h,dx

mov ax,b_h
mov bx,a_l
mul bx
add c_l,ax
adc c_h,dx

mov ax,b_h
mov bx,a_h
mul bx
add c_h,ax

call display1
jmp l0

// قطعه کد عملیات تقسیم ماشین حساب
l_div:

mov edx,0
mov dx,b_h

mov ax,b_l
shl eax,16

mov bx,a_h
shl ebx,16
mov bx,a_l

div ebx

mov c_l,ax
shr eax,16
mov c_h,ax

call display1
jmp l0
l7:
mov ax,4c00h
int 21h
main endp

// قطعه کد مربوط به صفحه نمایش و دریافت و خروجی هایی محاسبات

display1 proc

push ax
push bx
push cx
push dx

mov ax,c_l
mov dx,c_h
cmp dx,7fffh
jb positive

not dx
not ax
add ax,1
adc dx,0

mov c_h,dx
mov c_l,ax

mov dl,”-”
mov ah,02h
int 21h
positive:
mov ax,c_h
mov cx,0
mov bx,10
repeat1:
mov dx,0
div bx
push dx
inc cx
cmp ax,0
jne repeat1
repeat2:
pop dx
add dl,”0″
mov ah,02h
int 21h
loop repeat2

mov dl,”.”
mov ah,02h
int 21h

mov ax,c_l

mov bx,10
mov cx,4
repeat3:
mul bx
push ax

add dl,”0″
mov ah,02h
int 21h

pop ax
loop repeat3
mov a_h,0
mov b_h,0
mov c_h,0

mov a_l,0
mov b_l,0
mov c_l,0

mov opr,0
call nextline
call nextline
pop dx
pop cx
pop bx
pop ax
ret
display1 endp

// قطعه کد چاپ پیغام و نتیجه عملیات محاسباتی در صفحه نمایش

 

 

 

دانلود کامل پروژه همراه با فایل سورس کد اسمبلی و فایل اجرایی آن
در تمامی ساعات شبانه روز >> پرداخت آنلاین و دانلود آنلاین پروژه


پذیرش و انجام سفارشات پروژه های شما
شماره تماس پشتیبانی سایت : ۰۹۳۹۲۷۶۱۶۳۰

توجه مهم :

*دوست عزیز در صورت نداشتن رمز پویا یا قطع بودن درگاه بانکی ، لطفا نام پروژه درخواستی خود را جهت هماهنگی برای دریافت شماره کارت واریزی و دریافت لینک دانلود، به واتساپ پشتیبانی سایت  ۰۹۳۹۲۷۶۱۶۳۰  ارسال کنید *(از ساعت ۸ الی ۲۳)

Related posts

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *