تبلیغات
Ads
تبلیغات
Ads
گفتگو با مدیر
Chat
آخرين مطالب سایت
last posts
پر بازدید ترین مطالب
Top Posts
محبوبترین ها
Popular Posts
آخرين نظرات
Last comments

عنوان پروژه :
برنامه ۱۰ عدد از کاربر بگیرد و ماکزیمم و مینیمم و نزدیک ترین عدد به میانگین را نمایش دهد :

توضیحات :

ابتدا می بایست ۱۰ عدد از کاربر دریافت کنیم :
برای هر عدد ما باید عدد را به صورت یک رشته کاراکتر دریافت کنیم و با توسط تابع زیر مقدار عددی آن رشته را محاسبه نماییم ! فرض شده است که اعداد کوچکتر از ۶۵۵۳۵ هستند که در دو بایت جا بگیرند!

برای ذخیره سازی این ۱۰ عدد از یک آرایه ۱۰ عضوی استفاده کرده ایم :

NUM     DW 10 DUP(?)    ; ARRAY OF 10 NUMBER

ابتدا عدد را به صورت رشته از کاربر میگیریم ،  حال کافیست رشته را به تابع زیر بدهیم تا مقدار عددی آن را در خانه آرایه ذخیره کند ! برای دخیره سازی ۱۰ عدد از یک حلقه استفاده می کنیم و در ثبات سی ایکس مقدار ۱۰ را میریزیم که حلقه ۱۰ بار تکرار شود و با اشاره گر دی آی یا اس آی روی آرایه حرکت می کنیم.

پس از ذخیره سازی مقدار عددی ۱۰ عدد در آرایه ، حال می بایست ماکزیمم و مینیمم رو از طریق پیمایش آرایه توسط ثبات اشاره گر بیابیم!

    CALL MAXFINDER

CALL MINFINDER

در ماکزیمم ، ابتدا عنصر اول آرایه را به عنوان ماکزیمم در نظر می گیریم و اط طریق حلقه در ۹ خانه باقیمانده آرایه پیمایش انجام میدهیم ، و توسط دستور مقایسه محتوای خانه آرایه اندیس و ماکزیمم رو مقایسه می کنیم و در صورتی که از ماکزیمم بزرگتر بود مقدار ماکزیمم را با آن عوض می نماییم

به همین ترتیب برای مینیمم

برای محاسبه ی کمترین فاصله از میانگین ابتدا باید حاصل جمع را محاسبه نماییم و بر ۱۰ تقسیم نماییم!

پس ابتدا روی کل آرایه ۱۰ عضوی خود پیمایش می کنیم و حاصل جمع تمام خانه ها را به دست می آوریم و در متغیر سام می ریزیم

در تقسیم سام بر ۱۰  دو بایتی باید توجه کنیم که سام دو بایتی است و باید ابتدا توسط دستور زیر در ۴ بایت ذخیره شود و سپس تقسیم شود ، حال خارج قسمت در ثبات آ ایکس و باقیمانده در دی ایکس دخیره می شود !

Mov Ax,Sum

CWD ;  Sum now is in DX:AX

پس از محاسبه میانگین باید در تابع دیف فایندر فاصله تک تک عناصر آرایه از مقدار میانگین را توسط دستور ساب بدست آوریم ! دقت کنید که اگر عدد ما از میانگین کوچکتر باشد حاصل تفریق منفی می شود و بنابراین آن را توسط ضرب علامت دار در -۱ ضرب می نماییم تا مقدار قدر مطلق فاصله را بدست آوریم ، در هر مرحله مقدار تفریق را با مینیمم فاصله از میانگین مقایسه می نماییم و اگر کوچکتر بود ، مینیمم را با مقدار جدید جایگزین می نماییم، ضمنا آدرس حافظه عنصری که کمترین فاصله از میانگین را دارد را نیز دخیره می نماییم تا در انتها چاپ نماییم

نکته : برای چاپ یک رشته روی صفحه به صورت زیر عمل می نماییم :

تعریف رشته در دیتا سگمنت :

MSG1    DB          ‘ENTER 10 NUMBERS(NUMBER<65535)’,’$’

چاپ رشته در کد سگمت :

MOV     AH,09H

LEA         DX,MSG1

INT         ۲۱H

نکته : برای گرفتن یک رشته از کاربر به صورت زیر عمل می نماییم :

تعریف رشته در دیتا سگمنت :

M1         LABEL                    BYTE

MAXL1  DB          ۵   ; maximum length of string

ACL1      DB          ?

ST1         DB          ۵              DUP(‘ ‘)    ; ST1 IS FOR GETTING NUMBER IN STRING < 32765

دریافت رشته در کد سگمت :

MOV AH,0AH

LEA         DX,M1

INT 21H

صفحه تماس با ما : کلیک کنید

قیمت سورس به همراه پشتیبانی فنی : توافقی

موضوع : اسمبلی, پروژه
تاریخ ارسال : ۸ خرداد ۱۳۹۱  ,  بازدید : 6,576 بازدید ,  نظرات : ۳   ,  نویسنده : 

3 پاسخ به “برنامه محاسبه ماکزیمم ، مینیمم و میانگین به زبان اسمبلی”

  1. ملوسی می‌گه:

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

  2. fatemeh می‌گه:

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

  3. محسن می‌گه:

    برنامه ای بنویسید که در یک ارایه صد عدد را دریافت کند و میانکین و مینیمم و ماکسیمم را به صورت صعودی در خروجی نشان دهد در زبان اسمبلی تو رو خدا سریع جواب بدید

پاسخ دهید