close
تبلیغات در اینترنت
sbb
مرورگرهای پیشنهادی :
موضوعات
  • پایان نامه و مقاله فنی مهندسی
  • مهندسی برق ، الکترونیک ، مخابرات
  • مهندسی فناوری اطلاعات
  • مهندسی کامپیوتر
  • مهندسی مکانیک
  • مهندسی عمران
  • مهندسی معماری
  • مهندسی ساخت و تولید
  • مهندسی منابع طبیعی
  • مهندسی کشاورزی
  • مهندسی شیلات
  • مهندسی صنایع
  • مهندسی مواد
  • مهندسی نقشه برداری
  • مهندسی تاسیسات
  • مهندسی شیمی
  • مهندسی متالوژی
  • مهندسی نساجی
  • مهندسی معدن
  • مهندسی نفت
  • محیط زیست
  • جوشکاری
  • پایان نامه و مقاله علوم انسانی
  • حقوق
  • اقتصاد
  • مدیریت
  • جغرافیا
  • جهانگردی
  • حسابداری
  • تربیت بدنی
  • ادبیات فارسی
  • علوم سیاسی
  • علوم اجتماعی
  • مدیریت صنعتی
  • مدیریت روابط عمومی
  • احکام و معارف اسلامی
  • روانشناسی و علوم تربیتی
  • گرافیک
  • هنر
  • بیمه
  • تاریخ
  • موسیقی
  • صنایع دستی
  • پایان نامه و مقاله پزشکی
  • علوم آزمایشگاهی
  • بهداشت عمومی
  • طب هسته ای
  • چشم پزشکی
  • جنین شناسی
  • روان پزشکی
  • دندانپزشکی
  • پیراپزشکی
  • دامپزشکی
  • طب سنتی
  • داروسازی
  • پرستاری
  • پزشکی
  • مامایی
  • آناتومی
  • ژنتیک
  • پایان نامه و مقاله علوم پایه
  • زیست شناسی
  • زمین شناسی
  • دندانپزشکی
  • دامپزشکی
  • پزشکی
  • فیزیک
  • پاورپوینت و اسلاید فنی مهندسی
  • پاورپوینت معماری
  • پاورپوینت کامپیوتر و IT
  • نمونه سوالات استخدامی
  • نمونه سوالات استخدامی بانک
  • نمونه سوالات استخدامی آموزش و پرورش
  • نمونه سوالات استخدامی شهرداری
  • نمونه سوالات استخدامی تامین اجتماعی
  • نمونه سوالات استخدامی دستگاه اجرایی
  • نمونه سوالات استخدامی فنی و حرفه ای
  • نمونه سوالات استخدامی وزارت خانه ها
  • نمونه سوالات استخدامی نظامی
  • سایر نمونه سوالات استخدامی
  • جزوات دانشگاهی
  • جزوات دروس مشترک دانشگاهی
  • جزوات مهندسی برق
  • جزوات مهندسی مکانیک
  • جزوات مهندسی عمران
  • جزوات رشته حسابداری
  • جزوات مهندسی فیزیک
  • جزوات مهندسی معماری
  • جزوات مهندسی ریاضی
  • جزوات مهندسی صنایع
  • جزوات مهندسی شیمی
  • جزوات مهندسی کامپیوتر و IT
  • جزوات رشته زمین شناسی
  • جزوات رشته روانشناسی
  • جزوات مهندسی مخابرات
  • جزوات رشته مدیریت
  • جزوات تربیت بدنی
  • جزوات حقوق
  • گزارش کارآموزی فنی مهندسی
  • مهندسی کامپیوتر (سخت افزار - نرم افزار)
  • مهندسی مکانیک
  • مهندسی برق
  • مهندسی شیمی
  • مهندسی فناوری اطلاعات
  • صنایع غذایی
  • حسابداری
  • مدیریت
  • مطالب پربازدید
    مطالب تصادفی
    مطالب پیشین
  • بررسی رابطه تيپ های شخصيتی دبيران دبيرستانهای دخترانه با میزان موفقیت (پنجشنبه 13 اردیبهشت 1397)
  • بررسی پيش تجربی سياهه مشاوره ای لوئيس سوال هاي شماره 3 تا 45 (از مقياس اطمينان اجتماعی) (پنجشنبه 13 اردیبهشت 1397)
  • بررسی مقدماتی شخصيتی كرنل براي سوال 36 و 37 بر روي دانشجويان دانشگاه آزاد اسلامي (پنجشنبه 13 اردیبهشت 1397)
  • مقايسه مشكلات زبان عادی ويژه (چهارشنبه 12 اردیبهشت 1397)
  • مقایسه ویژگی های شخصیتی شخصیت ضد اجتماعی و انحرافات اجتماعی در بین دانشجویان دختر و پسر (جمعه 07 اردیبهشت 1397)
  • بررسی رابطة تك فرزندی با اختلالات رفتاری (چهارشنبه 05 اردیبهشت 1397)
  • بررسی توصيفی موسيقی و موسيقی درمانی بر روی انسان ها (چهارشنبه 05 اردیبهشت 1397)
  • بررسی تأثير ناكامی در ميزان پرخاشگری بين دانش آموزان دختر و پسر مقطع ابتدايی (چهارشنبه 05 اردیبهشت 1397)
  • بررسی ميزان تأثير اردوهای تربيتی ـ آموزشی بر رشد شخصيت دانش آموزان (چهارشنبه 05 اردیبهشت 1397)
  • نياز سنجی كاركنان اطلاعات (چهارشنبه 05 اردیبهشت 1397)
  • مقايسه هوش هيجانی و جرأت ورزی در دانش‌آموزان دختر و پسر نابينا و عادی (چهارشنبه 05 اردیبهشت 1397)
  • مقایسه میزان هیجان خواهی دانشجویان متأهل و مجرد (چهارشنبه 05 اردیبهشت 1397)
  • مددکاری (چهارشنبه 05 اردیبهشت 1397)
  • بررسی علل گرايش جوانان و نوجوانان به قرص های روان گردان (چهارشنبه 05 اردیبهشت 1397)
  • شناسايی نيازهای آموزشی و ترويجی توتون کاران (چهارشنبه 05 اردیبهشت 1397)
  • تعدادی از دستورات 8086 که برای انجام عمليات جمع و تفريق بر روی اعداد صحيح بکار می روند عبارتند از:

    ADD
    ADC
    INC
    SUB
    SBB
    DEC
    NEG
    CMP


    ADD

    اين دستورالعمل حاصل جمع صحيح دو عملوند خود را محاسبه و نتيجه را در عملوند اول قرار می دهد.

    add dest, src

    دستورالعمل add محتوای عملوند src را با عملوند dest جمع می کند و نتيجه را در dest ذخيره می کند (dest := dest + src).

    دستورالعمل add به شکل های زير می تواند استفاده شود:

    add register, register
    add register, memory
    add memory, register
    add register, immediate data
    add memory, immediate data
    add AX/AL, immediate data


    مثال. دستور زير محتوای ثبات های AX و BX را جمع کرده و حاصل را در ثبات AX ذخيره می کند.

    add AX,BX


    فلگ های زير با توجه به نتيجه دستورالعمل add تاثير می پذيرند:

    • فلگ Overflow اگر يک شوددلالت بر سرريزی در محاسبات علامتدار است.
    • فلگ Carry اگر يک شود دلالت بر سرريزی در محاسبات بدون علامت دارد.
    • فلگ Sign اگر يک شود نشان می دهد که نتيجه منفی بوده است. يعنی با ارزش ترين بيت عدد يک است.
    • فلگ Zero اگر يک شود بيان کننده اين است که نتيجه جمع صفر بوده است.
    • فلگ Auxiliary Carry شامل سرريزی BCD از نيبل پايين است.
    • فلگ Parity با توجه به 8 بيت پايين نتيجه تغييرمی کند. اگر تعداد بيت های يک نتيجه زوج باشد اين فلگ يک می شود. و اگر تعداد فردی بيت 1 در نتيجه باشد اين فلگ صفر می شود.
    روی بقيه فلگ ها اثر ندارند.

    نکاتی که درمورد دستور mov بايد رعايت شود در مورد دستور add نيز صادق است. علاوه بر اين که با اين دستور نمی توان يک ثبات سگمنت را با مقداری جمع کرد.

    وقتی داده فوری با يک عملوند بايت يا کلمه جمع می شود داده فوری به اندازه عملوند گسترش پيدا می کند.

    چون جمع حافظه و حافظه وجود ندارد اگر بخواهيد دو متغير را با هم جمع کنيد بايد عملوندهای حافظه را در ثبات ها منتقل کنيد.


    مثال. يک حالت ممکن برای انجام عمل جمع متغيرها به صورت J := K + M + N + P; می تواند به شکل زير باشد:

    mov BX, K
    mov AX, M
    add BX, N
    add AX, P
    add AX, BX
    mov J, AX

    مثال. می توان يک ثبات را با محلی از حافظه جمع کرد. اجباری نيست که هردو عملوند ثبات باشد.

    mov AX, K
    add J, AX

    مثال. می توان يک مقدار ثابت را با حافظه جمع کرد.

    add J, 2


    ADC

    دستورالعمل (add with carry) adc مشابه دستورالعمل add است با اين تفاوت که حاصل جمع دو عملوند و فلگ Carry را محاسبه می کند (dest :=dest+source+CF). بنابراين اگر Carry صفر باشد نتيجه مشابه add می شود.


    INC

    دستورالعمل (increment) inc يک واحد به عملوند خود اضافه می کند. شکل کلی آن به صورت زير است:

    inc dest

    اين دستورالعمل عدد 1 را با dest جمع و حاصل را در خود dest ذخيره می کند.

    دستور inc به شکل های زير می تواند باشد:

    inc register
    inc memory

    عملوند دستور می تواند ثبات يا مکانی از حافظه باشد. اندازه عملوند می تواند 8 يا 16 بيتی باشد.

    دستور inc فشرده تر و اغلب سريع تر از دستور add است.

    به استثنای فلگ Carry بقيه فلگ ها مشابه دستورالعمل add تغيير می کنند. توجه کنيد که اين دستور بر روی فلگ Carry تاثير ندارد و برای تاثير روی فلگ Carry بايد از دستورالعمل ADD استفاده شود.

    افزايش شمارنده حلقه و انديس آرايه يکی از متداولترين کاربردهای دستور inc است.


    SUB

    دستورالعمل (subtract) sub حاصل تفريق عملوند دوم از عملوند اول را محاسبه می کند. شکل کلی آن به صورت زير است:

    sub dest, src

    دستورالعمل sub مقدار src را از dest کم کرده حاصل را در dest ذخيره می کند.

    مشابه دستورالعمل add، دستور sub به صورت های زير می تواند باشد:

    sub register, register
    sub register, memory
    sub memory, register
    sub register, immediate data
    sub memory, immediate data
    sub AX/AL, immediate data

    دستور sub به طريق زير فلگ ها را تغيير می دهد:

    • اگر نتيجه صفر شود فلگ Zero يک می شود. اين در حالتی اتفاق می افتد که عملوندها با هم برابر باشند.
    • اگر نتيجه منفی شود فلگ sign يک می شود.
    • اگر سرريزی رخ دهد فلگ overflow يک می شود.
    • فلگ Auxiliary Carry در صورت نياز برای عمليات BCD يک می شود.
    • فلگ Parity با توجه به تعداد بيت های يک نتيجه تنظيم می شود.
    • فلگ Carry در صورت بروز سرريزی در محاسبات بدون علامت يک می شود.

    توجه داشته باشيد که تفريق خاصيت جابجائی ندارد.


    مثال. دستورات زير عمل J := J - K; را انجام می دهند.

    mov ax, K
    sub J, ax

    مثال. دستورات زير عمل J := K - J; را انجام می دهند.

    mov ax, K
    sub ax, J
    mov J, ax


    بعد از عمل تفريق از مقادير فلگ های Carry، Sign، Overflow و Zero می توان برای بررسی مساوی، نامساوی، بزرگتر يا کوچکتر بودن هر عملوند با ديگری استفاده کرد. جزئيات بيتشر در دستور cmp گفته خواهد شد.


    SBB

    دستورالعمل (subtract with borrow) sbb مشابه دستور sub است با اين تفاوت که حاصل تفريق عملوند دوم و CF از عملوند اول را محاسبه می نمايد(dest:=dest-src-CF)


    DEC

    دستورالعمل (decrement) dec يک واحد از عملوند خود کم می کند و حاصل را در خود عملوند دخيره می نمايد.

    dec dest

    عملوند دستور dec می تواند ثبات يا حافظه باشد.

    به استثنای فلگ Carry بقيه فلگ ها مشابه دستورالعمل sub تغيير می کنند.


    NEG

    دستورالعمل (negate) neg مکمل2 عملوند خود را محاسبه می کند. فرم کلی ان به صورت زير است:

    neg dest

    دستور neg حاصل تفريق تنها عملوند خود را از عدد صفر را محاسبه کرده (عملوند را منفی می کند) و نتيجه را در آن ذخيره می کند. درنتيجه اجرای دستور علامت عملوند عکس می شود.

    عملوند دستور neg می تواند ثبات يا محلی از حافظه باشد:

    neg register
    neg memory

    اين دستور روی فلگ ها به صورت زير تاثيرمی گذارد:

    • اگر نتيجه برابر با صفر شود فلگ Carry صفر و در غير اين صورت يک می شود. اگر عملوند صفر بوده باشد دستور اثری روی آن نمی گذارد ولی فلگ Carry را صفر می کند. منفی کردن هر مقدار ديگر فلگ Carry را يک می کند.
    • اگر عملوند يک بايتی و حاوی مقدار -128 باشد و يا دوبايتی و حاوی عدد -32768 باشد، منفی کردن عملوند را تغييير نمی دهد اما فلگ Overflow را يک می کند.
    • روی فلگ های S، P و Z مانند دستور sub اثر می گذارد.


    مثال. دستور زير علامت متغير J عکس می شود.

    neg J

    مثال. دستورات اسمبلی زير مکمل K را محاسبه و در J ذخيره می کند(J=-k;).

    mov AX, K
    neg AX
    mov J, AX


    CMP

    دستوالعمل (compare) cmp مانند دستور sub است با اين تفاوت که حاصل تفريق را ذخيره نمی کند(dest-src). نحوه کلی آن به صورت زير است:

    cmp dest.src

    به صورت های زير می تواند استفاده شود:

    cmp register, register
    cmp register, memory
    cmp memory, register
    cmp register, immediate data
    cmp memory, immediate data
    cmp AX/AL, immediate data

    فلگ ها مانند دستورالعمل sub با توجه به نتيجه تفريق تغيير می کنند.

    دستور زير را درنظر بگيريد:

    cmp AX, BX

    اين دستور حاصل AX-BX را محاسبه می کند و با توجه به حاصل فلگ ها را تنظيم می کند. فلگ ها به صورت زير تغيير می کنند و می توانند برای بررسی نتيجه مقايسه بکار برده شوند:

    • فلگ Zero يک می شود اگر AX=BX باشد. مساوی يا نامساوی بودن دو عملوند را مشخص می کند.
    • فلگ Carry وقتی يک می شود که در محاسبات بدون علامت AX<BX باشد. يعنی تفريق BX از AX احتياج به رقم قرضی داشته باشد.
    • فلگ Sign به همراه فلگ Overflow در محاسبات علامتدار نشان می دهد کدام عملوند بزرگتر است.
    • دستورالعمل cmp روی فلگ های Parity و Auxiliary Carry هم تاثير دارد ولی بندرت هنگام مقايسه مورد بررسی قرار می گيرند.

    به طور خلاصه برای مقايسه دو عملوند با توجه به فلگ های زير می توان نتيجه گيری کرد:

    عملوندهای بدون علامت
    فلگ ها
    AX = BXZ=1
    AX ≠ BXZ=0
    AX < BXC=1
    AX >= BXC=0
    عملوندهای علامتدار
    فلگ ها
    AX = BXZ=1
    AX ≠ BXZ=0
    AX < BX(S=0 and O=1)or(S=1 and O=0)
    AX >= BX(S=0) and (O=0) or (S=1) and (O=1)
    بازدید : 2897 تاریخ : نویسنده : بهرام محمدپور | نظرات ()
    آمار سایت
  • آمار مطالب
  • کل مطالب : 4311
  • کل نظرات : 17
  • آمار کاربران
  • افراد آنلاین : 4
  • آمار بازدید
  • بازدید امروز : 2,973
  • باردید دیروز : 13,194
  • گوگل امروز : 29
  • گوگل دیروز : 36
  • بازدید هفته : 16,167
  • بازدید ماه : 154,977
  • بازدید سال : 842,897
  • بازدید کلی : 6,696,623
  • نظرسنجی
    چه مطالبی در سایت قرار دهیم؟





    کدهای اختصاصی