c p p

c p p

کدها و برنامه های سی پلاس پلاس ، ساختمان داده به زبان cpp، کدها و برنامه های اسمبلی،پروژه های آماده سی پلاس ،سی پلاس تحت داس
c p p

c p p

کدها و برنامه های سی پلاس پلاس ، ساختمان داده به زبان cpp، کدها و برنامه های اسمبلی،پروژه های آماده سی پلاس ،سی پلاس تحت داس

ماشین حساب اسمبلی

 ماشین حساب اسمبلی 

  

 

با سلام. 

این سورس یه برنامه تقریبا ساده ماشین حساب به زبان اسمبلی است که با نرم افزار شبیه ساز  (تو همین وبلاگ هستش) نوشته شده.این برنامه با ماوس کار میکنه و همون چهار عمل اصلی رو با محدودیت پنج رقم و بدون اعشار انجام میده. (شرمنده که کامل نیستش!) (بازهم شرمنده که تو 64 بیتی ها اجرا نمیشه)

 

دانلود

 

 

دستورات اصلی بدین شرح هستند: 

  

0)عدد موجود در x را چاپ کن

1)عدد اول را دریافت کن(رشته را در buffer قرار بده، و عدد را در x قرار بده)

2)بعد از آن عملگر اول را دریافت کن 

3)اگر عملگر "=" بود ، به خط صفر برگرد؛در غبر این صورت ادامه بده :

4)عدد دوم را دریافت کن(رشته را در buffer قرار بده و عدد را درy قرار بده) 

5)عملگر دوم را دریافت کن 

6)با فراخوانی  calculatore نتیجه عبارت x(عملگر اول)y را حساب کن و حاصل را در xقرار بده 

7)اگر عملگر دوم "=" بود، به خط 0 برگرد؛در غیر اینصورت ادامه بده: 

8)عملگر دوم را در عملگر اول قرار بده و به خط 5 برگرد. 

  

 

با این دستورات مثلا شما میتوانید عبارت 3*6-4+8= و یا 4+5= ویا -6/5= را وارد کنید. 

 

البته به این دلیل که x,y را word تعریف کردم و از همان ثبات های دوبیتی استفاده کردم فقط میشود اعداد تا پنج رقم را استفاده کرد و اگر حاصل از آن بیشتر شد علامت o بمعنی سرریز در گوشه صفحه چاپ میشود که باید در اینصورت دکمه C را کلیک کرد تا برنامه به خط صفر برگردد. 

برنامه فقط تا پنج رفم را دریافت میکند و رقم بعدی را _هرچه باشد_ عملگر "=" حساب میکند. 

ضمنا اعداد مثبت و منفی را هم در محاسبات درنظر میگیرد.برای وارد کردن عدد منفی باید بنویسی -8= یا -8*...  . 

 

 

این هم دستورات اصلی برنامست: 

 

   
call print_screen   

begin:
      reset
      calc1:
       putrez buffer,x   ;print  x
          number_in  x,operand1,lenth
          mov al,operand1
          cmp al,'='
           je calc1
      calc2:
          number_in  y,operand2,lenth
          call calculate    ;x = x (operand1) y
          mov al,operand2
          cmp al,'='
           je calc1   ;if(operand2=='='):printx,start again.
          mov operand1,al  ;else:operand1=operand2,printx,get buffer again.
          putrez buffer,x
          jmp calc2
  

  

 

 

 امیدوارم بدردتون بخوره. 

دانلود

نظرات 2 + ارسال نظر
arasto دوشنبه 10 خرداد‌ماه سال 1389 ساعت 02:43 ب.ظ

salam
2ta link download gozashti
man natonestam ba hich kodomesh download konam
mishe ye link dige bezarin
ba tashakor

این لینک درست کار میکنه یه بار دیگه امتحانش کن :
http://www.persiangig.com/pages/download/?dl=http://mortezamsp.persiangig.com/Asmbly/asum-calculatore_cplusplus.blogsky.zip

امیر شنبه 23 اردیبهشت‌ماه سال 1391 ساعت 09:09 ق.ظ

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

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد