تبلیغات
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

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

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

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

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

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

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

  2. fatemeh می‌گه:

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

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

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

پاسخ دهید