SlideShare a Scribd company logo
1 of 36
AA
‫أسمبيلي‬‫للمبتدئين‬
‫العامري‬ ‫طالب‬ ‫مشتاق‬ :‫المبرمج‬ ‫أعداد‬
‫للمبتدئٌن‬ ً‫األسٌمبل‬ ‫لغة‬
MUSHTAQ_TALIB58@YAHOO.COM
1/1/2009
209
‫مقدمة‬ً‫ف‬‫لغة‬ً‫األسمبل‬
‫هذه‬‫اللغة‬‫مزودة‬‫لوصف‬‫كل‬‫من‬‫العملٌات‬‫األساسٌة‬ً‫الت‬‫ٌمكن‬‫إنجازها‬‫بواسطة‬
‫المعالج‬،‫المصغر‬‫كتب‬ُ‫ت‬‫تعلٌمات‬‫هذه‬‫اللغة‬‫باستعمال‬‫الرموز‬‫الهجائٌة‬‫أو‬‫ما‬‫ُدعى‬ٌ
ALPHANUMERIC‫ا‬‫ل‬‫بد‬‫من‬‫األصفار‬‫و‬‫الواحدات‬ً‫ف‬‫شٌفرة‬‫اآللة‬‫للمعالج‬.‫إن‬
‫الصٌغة‬‫العامة‬‫لكتابة‬‫األمر‬(‫التعلٌمة‬)ً‫ف‬‫لغة‬ً‫األسمبل‬ً‫ه‬:
‫لفتة‬:‫تعلٌمة‬;‫تعلٌق‬
‫عادة‬‫فإن‬‫التعلٌقات‬‫أو‬‫المالحظات‬ً‫الت‬‫تصف‬‫األوامر‬‫توضع‬‫على‬‫الطرف‬‫األٌمن‬.
‫و‬‫هذا‬‫النوع‬‫من‬‫التوثٌق‬‫بٌن‬‫التعلٌمة‬‫و‬‫التعلٌق‬‫ٌجعل‬‫من‬‫السهل‬‫على‬‫المبرمج‬‫كتابة‬
‫و‬‫قراءة‬‫و‬‫تصحٌح‬‫الشٌفر‬‫ة‬.‫و‬‫نقصد‬‫بكلمة‬‫الشٌفرة‬‫أن‬‫البرنامج‬‫مكتوب‬‫بلغة‬‫اآللة‬
‫للمعالج‬‫و‬‫الذي‬‫ُعرف‬ٌ‫بشٌفرة‬‫الهدف‬object code‫أما‬‫البرنامج‬‫المكتوب‬‫بلغة‬
ً‫األسمبل‬‫فٌدعى‬‫بشٌفرة‬‫المصدر‬source code.‫هذا‬‫و‬‫إن‬‫كل‬‫تعلٌمة‬ً‫ف‬‫برنامج‬
‫المصدر‬‫تطابق‬‫ا‬‫ا‬‫أمر‬‫ا‬‫ا‬‫واحد‬ً‫ف‬‫لغة‬ً‫األسمبل‬‫حٌث‬‫أن‬‫األمر‬‫ٌجب‬‫أن‬‫د‬ِّ‫د‬‫ٌح‬‫أي‬‫عملٌة‬
‫سٌتم‬‫تنفٌذها‬‫و‬‫ما‬ً‫ه‬‫متحولت‬‫المعطٌات‬ً‫الت‬‫عالج‬ُ‫ت‬‫س‬.‫لهذا‬‫السبب‬‫قسم‬ُ‫ت‬‫التعلٌمة‬
‫إلى‬‫قسمٌن‬‫منفصلٌن‬:‫رمز‬‫التعلٌمة‬opcode = operation code‫و‬‫المتحولت‬
operands.‫رمز‬‫العملٌة‬‫هو‬‫جزء‬‫من‬‫التعلٌمة‬‫و‬‫الذي‬‫ٌحدد‬‫العملٌة‬ً‫الت‬‫نفذ‬ُ‫ت‬‫س‬
‫ا‬‫ال‬‫فمث‬‫نذكر‬‫بعض‬‫العملٌات‬‫النموذجٌة‬‫كالجمع‬‫و‬‫الطرح‬‫و‬‫النقل‬.
ً‫ف‬‫لغة‬ً‫األسمبل‬‫تستخدم‬‫الكلمات‬‫المختزلة‬mnemonic‫من‬‫أجل‬‫التعلٌمات‬‫ا‬‫ال‬‫فمث‬
‫بالنسبة‬‫للمعالج‬0806‫فالكلمات‬‫المختزلة‬ً‫ف‬‫لغة‬ً‫األسمبل‬‫لعملٌات‬‫الجمع‬‫و‬‫الطرح‬
‫و‬‫النقل‬ً‫ه‬‫على‬‫الترتٌب‬ADD‫و‬SUB‫و‬MOV.‫أما‬‫المتحولت‬‫فتحدد‬‫ال‬‫معطٌات‬
ً‫الت‬‫عالج‬ُ‫ت‬‫س‬‫من‬‫ِبل‬‫ق‬‫المعالج‬‫بواسطة‬‫رمز‬‫العملٌة‬‫للتعلٌمة‬‫ا‬‫ال‬‫فمث‬ً‫ف‬‫التعلٌمة‬ً‫الت‬
‫تضٌف‬‫محتوٌات‬‫مسجل‬‫القاعدة‬‫إلى‬‫محتوٌات‬‫المراكم‬‫فإن‬BX‫و‬AXً‫ه‬
‫المتحولت‬‫و‬‫كتب‬ُ‫ت‬‫التعلٌمة‬‫على‬‫الشكل‬ً‫التال‬ADD AX,BXً‫فف‬‫هذا‬‫المثال‬‫ضاف‬ُ‫ت‬
‫محتوٌات‬BX‫إلى‬AX‫و‬‫ٌوضع‬‫ناتج‬‫ال‬‫جمع‬ً‫ف‬AX‫و‬‫لذلك‬‫بر‬َ‫ت‬‫ُع‬ٌBX‫متحول‬
‫المصدر‬‫و‬AX‫متحول‬‫الهدف‬.
‫طاقم‬‫تعلٌمات‬‫المعالج‬0806
‫ُزود‬ٌ‫المعالج‬0806‫بمجموعة‬‫تعلٌمات‬‫مإلفة‬‫من‬111‫تعلٌمة‬‫أساسٌة‬‫و‬‫كذلك‬‫إن‬
‫المجال‬‫الواسع‬‫للمتحولت‬‫و‬‫أنظمة‬‫العنونة‬‫المسموحة‬‫لالستعمال‬‫مع‬‫هذه‬‫التعلٌمات‬
‫ٌوسع‬‫مجموعة‬‫التعلٌمات‬‫إ‬‫لى‬‫تعلٌمات‬،‫أكثر‬‫ا‬‫ال‬‫فمث‬‫تعلٌمة‬Mov‫األساسٌة‬‫تمتد‬‫إلى‬
80‫تعلٌمة‬‫مختلفة‬‫و‬‫قابلة‬‫للتنفٌذ‬‫على‬‫مستوى‬‫لغة‬‫اآللة‬.
‫ا‬‫ل‬‫أو‬-‫تعلٌمات‬‫نقل‬‫المعطٌات‬
‫ٌملك‬‫المعالج‬‫مجموعة‬‫تعلٌمات‬‫وظٌفتها‬‫نقل‬‫المعطٌات‬‫و‬‫ذلك‬‫إما‬‫بٌن‬‫مسجالت‬
‫المعالج‬‫الداخلٌة‬‫أو‬‫بٌن‬‫مسجل‬ً‫داخل‬‫و‬‫حجرة‬‫تخزٌن‬ً‫ف‬‫الذاكرة‬‫و‬ً‫ه‬:
1)‫تعلٌمة‬Mov
‫تستخدم‬‫هذه‬‫التعلٌمة‬‫لنقل‬‫باٌت‬‫أو‬‫كلمة‬‫معطٌات‬‫من‬‫متحول‬‫المصدر‬‫إلى‬‫متحول‬
‫الهدف‬‫و‬‫لها‬‫الشكل‬ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬S → DMOV D,S‫نقل‬MOV
‫إن‬S,D‫لهذه‬‫التعلٌمة‬‫ٌمكن‬‫أن‬‫تكون‬‫مسجالت‬‫داخل‬‫ٌة‬‫أو‬‫حجرات‬‫تخزٌن‬ً‫ف‬‫الذاكرة‬
‫و‬‫ٌبٌن‬‫الجدول‬ً‫التال‬‫مختلف‬‫أنواع‬‫متحولت‬‫المصدر‬‫و‬‫الهدف‬‫مع‬‫مثال‬‫لكل‬‫منها‬:
‫الحالت‬‫المستثناة‬‫من‬‫تعلٌمة‬MOV
1-‫ل‬‫تستطٌع‬‫تعلٌمة‬MOV‫أن‬‫تنقل‬‫المعطٌات‬‫بشكل‬‫مباشر‬‫بٌن‬ً‫حجرت‬‫ذاكرة‬‫لذلك‬
‫ل‬‫نرى‬ً‫ف‬‫الجدول‬‫المجاور‬‫الحالة‬‫التالٌة‬:Mem → Mem‫و‬‫لحل‬‫هذه‬‫المشكلة‬
‫فإن‬‫المعطٌات‬‫المرغوب‬‫بنقلها‬‫ٌجب‬‫نقلها‬‫ا‬‫ل‬‫أو‬ً‫ف‬‫مسجل‬ً‫داخل‬‫بواسطة‬‫تعلٌمة‬
MOV،‫و‬‫من‬‫ثم‬‫تنقل‬‫محتوٌات‬‫هذا‬‫المسجل‬‫إلى‬‫حجرة‬‫جدٌدة‬ً‫ف‬‫الذاكرة‬‫بواسطة‬
‫تعلٌمة‬MOV‫أخرى‬.
8-‫ل‬‫ٌمكن‬‫وضع‬‫قٌمة‬‫فورٌة‬ً‫ف‬‫مسجل‬‫مقطع‬‫مباشرة‬.‫أي‬‫أن‬‫التعلٌمة‬‫التالٌة‬‫غٌر‬
‫م‬‫سموح‬‫بها‬MOV DS,1000‫و‬‫لحل‬‫هذا‬‫المشكلة‬‫نستخدم‬‫التعلٌمتٌن‬‫التالٌتٌن‬:
MOV AX,1000
MOV DS,AX
3-‫ل‬‫ٌمكن‬‫نقل‬‫محتوٌات‬‫أحد‬‫مسجالت‬‫المقاطع‬‫إلى‬‫مسـجل‬‫مقطع‬‫آخر‬،‫مباشرة‬‫أي‬
‫أن‬‫التعلٌمة‬‫التالٌة‬‫غٌر‬‫مسموح‬‫بها‬MOV DS,ES‫و‬‫لحل‬‫هذه‬‫المشكلة‬‫نقوم‬‫بـ‬
MOV AX,ES
MOV DS,AX
‫مثال‬‫عام‬:MOV AL,[SI]‫هذه‬‫التعلٌمة‬ً‫تعن‬‫نقل‬‫محتوٌات‬‫حجرة‬‫الذاكرة‬‫المشار‬
‫إلٌها‬‫بواسطة‬‫المسجل‬SI‫إلى‬‫المسجل‬AL‫و‬‫إن‬‫نظام‬‫العنونة‬ً‫ف‬‫هذه‬‫التعلٌمة‬‫هو‬
‫عنونة‬‫غٌر‬‫مباشرة‬‫بالمسجل‬‫و‬‫متحول‬‫المصدر‬‫عنوانه‬ً‫الفٌزٌائ‬‫هو‬PA = DS x
10h + SI‫أما‬‫متحول‬‫الهدف‬‫فهو‬AL.
8(‫تعلٌمة‬‫التبدٌل‬XCHG
‫ستخدم‬ُ‫ت‬‫هذه‬‫التعلٌمة‬‫لستبدال‬‫متحول‬‫المصدر‬‫بمتحول‬‫الهدف‬‫و‬‫لستبدال‬‫متحول‬
‫الهدف‬‫بمتحول‬‫المصدر‬.
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬S → D
D → SXCHG D,S‫تبدٌل‬XCHG
‫و‬‫ٌبٌن‬‫الجدول‬ً‫التال‬‫مختلف‬‫أنواع‬‫متحولت‬‫المصدر‬‫و‬‫ال‬‫هدف‬‫لتعلٌمة‬XCHG.
‫مثال‬:
XCHG AX,BX
ً‫ف‬‫هذا‬‫المثال‬‫ٌتم‬‫التبدٌل‬‫بٌن‬‫محتوٌات‬AX‫و‬BX.
XCHG [SUM],BX
‫ٌتم‬‫التبدٌل‬‫بٌن‬‫محتوى‬‫الحجرة‬SUMً‫ف‬‫الذاكرة‬‫و‬‫بٌن‬‫المسجل‬BX.
3)‫تعلٌمة‬XLAT
‫تتعامل‬‫هذه‬‫التعلٌمة‬‫مع‬AL‫فقط‬،‫إن‬‫تعامل‬‫هذه‬‫التعلٌمة‬‫ٌتم‬‫مع‬‫الجداول‬‫المخزنة‬
ً‫ف‬‫الذاكرة‬‫فلو‬‫وضعنا‬ً‫ف‬BX‫إزاحة‬‫بداٌة‬‫الجدول‬‫نسبة‬‫إلى‬‫مقطع‬‫المعطٌات‬DS‫و‬
‫وضعنا‬ً‫ف‬AL‫إزاحة‬‫العنصر‬‫نسبه‬‫إلى‬‫بداٌة‬،‫الجدول‬‫عندها‬‫تقوم‬‫تعلٌمة‬XLAT
‫بجمع‬‫محتوٌات‬‫المسجل‬AL‫مع‬‫محتوٌات‬‫المسجل‬BX‫و‬‫تعتبر‬‫الناتج‬‫إزاحة‬‫بالنسبة‬
‫إلى‬‫مقطع‬،‫المعطٌات‬‫ثم‬‫تقوم‬‫بوضع‬‫قٌمة‬‫الحج‬‫رة‬‫المعطى‬‫إزاحتها‬ً‫ف‬AL.
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬(DS x 10h ) + *AL+BX+ → ALXLAT‫جدول‬‫المصدر‬
‫ترجمة‬XLAT
‫مثال‬:
‫بفرض‬‫أنه‬‫لدٌنا‬‫جدول‬ً‫ف‬‫الذاكرة‬‫ٌحتوي‬‫على‬‫مربعات‬‫األعداد‬‫من‬1‫إلى‬9‫أي‬‫أنه‬
ً‫ف‬‫أول‬‫حجرة‬‫من‬‫الجدول‬‫ٌوضع‬‫مربع‬‫العدد‬1‫و‬ً‫ف‬‫الحجرة‬‫الثانٌة‬‫ٌوضع‬‫مربع‬
‫العدد‬8(‫أي‬4)،‫و‬‫هكذا‬…‫ومن‬‫هذا‬‫نرى‬‫أن‬‫الجدول‬‫طوله‬‫تسع‬‫باٌتات‬‫إزاحة‬
‫بداٌته‬‫عن‬‫بداٌة‬‫مقطع‬‫الـ‬DSً‫ه‬188.
‫عندما‬‫ٌطلب‬‫منا‬‫الحصول‬‫على‬‫مربع‬‫أحد‬‫هذه‬‫األعداد‬‫و‬‫لٌكن‬‫العدد‬4‫أي‬‫أن‬
‫المطلوب‬‫هو‬‫أن‬‫تصبح‬‫قٌمة‬AL = 16‫لذلك‬‫نقوم‬‫بما‬ً‫ٌل‬:
1)‫نضع‬AL = 3‫و‬BX = 100.
8)ً‫نعط‬‫التعلٌمة‬XLAT.
‫و‬‫بعد‬‫تنفٌذها‬‫ٌصبح‬AL = 16‫و‬‫هو‬‫المطلوب‬.
4)‫التعلٌمات‬LEA, LES, LDS
‫تستعمل‬‫هذه‬‫التعلٌمات‬‫من‬‫أجل‬‫عملٌة‬‫نقل‬‫المعطٌات‬‫لتحمٌل‬‫مسجل‬‫مقطع‬‫أو‬‫مسجل‬
‫أغراض‬‫عامة‬‫بعنوان‬‫بشكل‬‫مباشر‬‫من‬‫الذاكرة‬.‫التعلٌمة‬LEA‫و‬‫ظٌفتها‬ً‫ه‬‫تحمٌل‬
‫مسجل‬‫بعنوان‬‫فعال‬‫أما‬LDSً‫فه‬‫لتحمٌل‬‫مسجل‬‫ما‬‫و‬‫مسجل‬‫مقطع‬‫المعطٌات‬DS
‫و‬‫تعلٌمة‬LES‫وظٌفتها‬‫تحمٌل‬‫مسجل‬‫ما‬‫و‬‫مسجل‬‫مقطع‬‫المعطٌات‬ً‫اإلضاف‬ES.
‫وهذه‬‫التعلٌمات‬‫موصوفة‬‫كما‬ً‫ف‬‫الجدول‬ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬ٌ‫وجد‬Mem16 → reg16LEA reg16,mem16‫تحمٌل‬
‫عنوان‬‫فعال‬LEA
‫ل‬‫ٌوجد‬Mem32 → reg16
Mem32+2 → DSLDS reg16,mem32‫تحمٌل‬‫مسجل‬‫و‬‫المسجل‬DS
LDS
‫ل‬‫ٌوجد‬Mem32 → reg16
Mem32+2 → ESLES reg16,mem32‫تحمٌل‬‫مسجل‬‫و‬‫المسجل‬ES
LES
‫أمثلة‬:
LEA SI,[100] => SI = 1000
LDS SI,[200] => SI = 553F
DS = 1000
LES DI,[300] => DI = 4030
ES = 3000
‫ا‬‫ا‬ٌ‫ثان‬-‫التعلٌمات‬‫الرٌاضٌة‬
‫و‬ً‫ه‬‫تشمل‬‫تعلٌمات‬‫من‬‫أجل‬‫عملٌات‬،‫الجمع‬،‫الطرح‬‫الضرب‬‫و‬‫القسمة‬.
1)‫تعلٌمات‬‫الجمع‬
‫و‬ً‫ه‬‫موصوفة‬‫بالجدول‬ً‫التال‬:
‫األ‬‫عالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫أعالم‬‫الحالة‬S + D → D
Carry → CFADD D,S‫جمع‬ADD
‫أعالم‬‫الحالة‬S + D + CF → D
Carry → CFADC D,S‫جمع‬‫مع‬‫أخذ‬‫النزٌاح‬‫بعٌن‬‫العتبار‬ADC
‫أعالم‬‫الحالة‬D+1 → DINC D‫الزٌادة‬‫بمقدار‬‫واحد‬INC
AF,CF‫سٌتم‬‫شرحها‬‫ا‬‫ا‬‫لحق‬AAA‫تصحٌح‬‫ناتج‬‫جمع‬‫عددٌن‬‫بشٌفرة‬
ً‫اآلسك‬AAA
‫كل‬‫أعالم‬‫الحالة‬‫ماعدا‬OF‫سٌتم‬‫شرحها‬‫ا‬‫ا‬‫لحق‬DAA‫تصحٌح‬‫ناتج‬‫جمع‬‫عددٌن‬
‫بشٌفرة‬BCDDAA
ً‫تعلٌمت‬ADD‫و‬ADC
‫إن‬‫المتحولت‬‫المسموحة‬ً‫ف‬‫تعلٌمات‬‫الجمع‬ADD, ADC‫مبٌنة‬ً‫ف‬‫الجدول‬ً‫التال‬:
‫و‬‫بالنسبة‬‫للمتحولت‬‫المسموحة‬ً‫ف‬‫تعلٌمة‬INCً‫فه‬:
‫مثال‬:‫بفرض‬AX = 4F3Dh‫و‬BX = FD81h‫و‬CF = 1‫فما‬ً‫ه‬‫نتٌجة‬‫تنفٌذ‬
‫التعلٌمة‬ADC AX,BX‫؟‬‫ا‬‫ا‬‫مبٌن‬‫حالة‬‫أعالم‬‫الحالة‬‫بعد‬‫تنفٌذ‬‫عملٌة‬‫الجمع‬‫هذه‬.
‫الحل‬:‫سنكتب‬‫الشٌفرة‬‫الثنائٌة‬‫للمتحولت‬‫من‬‫أجل‬‫توضٌح‬‫حالة‬‫األعالم‬
11111111
AX = 0100 1111 0011 1101 b
BX = 1111 1101 1000 0001 b
CF = 0001 b+
8188118818111111b
‫و‬‫اآلن‬‫أعالم‬‫الحالة‬ً‫ه‬:
PF = 0‫ألن‬‫عدد‬‫الواحدات‬‫فردي‬ً‫ف‬‫الباٌت‬‫األول‬‫من‬‫ناتج‬‫الجمع‬
AF = 0‫ألنه‬‫ل‬‫ٌوجد‬‫انزٌاح‬‫من‬‫الخانة‬3‫إلى‬‫الخانة‬4ً‫ف‬‫الباٌت‬‫األول‬‫من‬‫ناتج‬
‫الجمع‬(‫حٌث‬‫ٌتم‬‫ترقٌم‬‫الخانات‬‫ا‬‫ا‬‫بدء‬‫من‬‫الصفر‬)
SF = 0‫و‬ً‫ه‬‫آخر‬‫خانة‬‫من‬‫نتٌجة‬‫الجمع‬(‫الناتج‬‫موجب‬)
CF = 1‫بسبب‬‫وجود‬‫انزٌاح‬ً‫خارج‬
OF = 0‫ألنه‬‫ٌوجد‬‫إنزٌاح‬ً‫داخل‬‫و‬‫إنزٌاح‬ً‫خارج‬
‫مالحظة‬:‫النزٌاح‬ً‫الداخل‬‫هو‬‫الداخل‬‫إلى‬‫الخان‬‫ة‬‫ذات‬‫األهمٌة‬‫العظمى‬MSB
‫مالحظة‬:OF = 1‫إذا‬‫وجد‬‫انزٌاح‬ً‫داخل‬‫فقط‬‫أو‬‫وجد‬‫انزٌاح‬ً‫خارج‬‫فقط‬
‫تعلٌمة‬‫التصحٌح‬DAA
‫تستخدم‬‫هذه‬‫التعلٌمة‬‫إلنجاز‬‫عملٌة‬‫تصحٌح‬‫لناتج‬‫جمع‬‫عددٌن‬‫بشٌفرة‬BCD(‫هذا‬‫و‬
‫ٌجب‬‫أن‬‫ٌكون‬‫ناتج‬‫الجمع‬‫ا‬‫ا‬‫حتم‬ً‫ف‬AL‫أي‬ً‫ف‬‫النصف‬ً‫السفل‬‫من‬‫المراكم‬AX)‫و‬
‫الجدول‬ً‫التال‬‫ٌبٌن‬‫الحالت‬‫الممكنة‬‫لجمع‬‫عددٌن‬‫بشٌفرة‬BCD:
‫المنطقة‬‫األولى‬‫أرقامها‬‫من‬8‫إلى‬9‫و‬‫فٌها‬‫تكون‬‫نتٌجة‬‫الجمع‬‫صحٌحة‬‫و‬‫ل‬‫تحتوي‬
‫على‬‫انزٌاح‬‫و‬‫لٌست‬‫بحاجة‬‫إلى‬‫تصحٌح‬‫ا‬‫ال‬‫مث‬1+8=9‫و‬ً‫ه‬‫أرقام‬‫واقعة‬‫ضمن‬
‫نطاق‬‫المنطقة‬‫األولى‬.
‫المنطقة‬‫الثانٌة‬‫أرقامها‬‫من‬18‫إلى‬15‫و‬‫فٌها‬‫تكون‬‫نتٌجة‬‫الجمع‬‫غٌر‬‫صحٌحة‬‫و‬
‫بحاجة‬‫إلى‬‫تصحٌح‬‫بإضافة‬‫العدد‬6‫فنحصل‬‫على‬‫رقم‬‫و‬‫حمل‬‫إلى‬‫العدد‬ً‫الثان‬‫ا‬‫ال‬‫فمث‬
9+5=E‫فبإضافة‬6‫إلى‬‫العدد‬E‫ٌكون‬‫الناتج‬6+E=14‫و‬‫بذلك‬‫تكون‬‫النتٌجة‬
‫صحٌحة‬.
‫المنطقة‬‫الثالثة‬‫أرقامها‬‫من‬16‫و‬‫حتى‬10‫و‬‫فٌها‬‫تكون‬‫نتٌجة‬‫الجمع‬‫غٌر‬‫ص‬‫حٌحة‬
‫و‬‫بحاجة‬‫إلى‬‫تصحٌح‬‫و‬‫هنا‬‫تتكون‬‫النتٌجة‬‫من‬‫حاصل‬‫جمع‬‫مع‬‫انزٌاح‬.
‫بما‬‫أن‬‫ناتج‬‫الجمع‬‫موجود‬ً‫ف‬AL‫حٌث‬‫نمثل‬AL = Bit7 … Bit0
‫إن‬‫قاعدة‬‫التصحٌح‬ً‫ف‬‫هذه‬‫التعلٌمة‬ً‫ه‬:
1)if Bit3 Bit2 Bit1 Bit0 of AL > 9 or AF = 1
then AL = AL + 6 , AF = 1
8)if AL > 9Fh or CF = 1
then AL = AL + 60h , CF =1
‫مثال‬:‫بفرض‬‫أن‬AL = 28 BCD‫و‬BL = 68 BCD
‫ما‬‫هو‬‫ناتج‬‫تنفٌذ‬‫ما‬ً‫ٌل‬:
ADD AL,BL
DAA
‫الحل‬:‫إن‬‫نتٌجة‬‫تنفٌذ‬‫هاتٌن‬‫التعلٌمتٌن‬ً‫ه‬
80BCD = 0010 1000 b
60BCD = 0110 1000 b+
18818888→AL
CF = 0 0110+
18818118>=AL = 96 BCD
AF = 1
‫تعلٌمة‬AAA
‫تستخدم‬‫هذه‬‫التعلٌمة‬‫لتصحٌح‬‫ناتج‬‫جمع‬‫عددٌن‬‫بشٌفرة‬ً‫آسك‬(‫و‬‫هنا‬‫ا‬‫ا‬‫أٌض‬‫ٌجب‬‫أن‬
‫ٌكون‬‫ناتج‬‫الجمع‬ً‫ف‬‫المسجل‬AL)‫و‬‫قاعدة‬‫التصحٌح‬ً‫ف‬‫هذه‬‫التعلٌمة‬ً‫ه‬:
if Bit3 Bit2 Bit1 Bit0 of AL > 9 or AF =1
then AL = AL + 06
AL = AL and 0Fh
AH = AH + 1
AF = 1
CF = 1
Else AL = AL and 0Fh
AH = 00
‫مثال‬:‫بفرض‬‫أن‬AL =32h = 2 ASCII‫و‬BL = 34h = 4 ASCII‫ما‬‫هو‬‫ناتج‬
‫تنفٌذ‬‫التعلٌمتٌن‬‫التالٌتٌن‬:
ADD AL,BL
AAA
‫الحل‬:‫إن‬‫ناتج‬‫تنفٌذ‬‫هاتٌن‬‫التعلٌمتٌن‬‫هو‬ً‫كالتال‬:
AL = 0011 0010
BL = 0011 0100+
81188118→AL = 66h
AL = 06h , AH = 00
‫و‬‫هنا‬AF = 0‫بسبب‬‫عدم‬‫وجود‬‫انزٌاح‬‫من‬‫الخانة‬3‫إلى‬‫الخانة‬4(‫حٌث‬‫ٌبدأ‬
‫الترقٌم‬‫ا‬‫ا‬‫اعتبار‬‫من‬‫الصفر‬)
8)‫تعلٌمات‬‫الطرح‬
‫هناك‬‫مجموعة‬‫واسعة‬‫من‬‫تعلٌمات‬‫الطرح‬‫كما‬‫هو‬‫واضح‬‫من‬‫الجدول‬ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫أعالم‬‫الحالة‬D - S → D
burrow → CFSUB D,S‫طرح‬SUB
‫أعالم‬‫الحالة‬D - S - CF → D
Carry → CFSBB D,S‫الطرح‬‫مع‬‫الستعارة‬SBB
‫أعالم‬‫الحالة‬D-1 → DDEC D‫اإلنقاص‬‫بمقدار‬‫واحد‬DEC
‫أعالم‬‫الحالة‬8–D → D
1→CFNEG D‫المتمم‬ً‫الثنائ‬NEG
‫كل‬‫أعالم‬‫الحالة‬‫عدا‬OF‫سٌتم‬‫شرحها‬‫ا‬‫ا‬‫لحق‬DAS‫تصحٌح‬‫ناتج‬‫طرح‬
‫عددٌن‬‫بشٌفرة‬BCDDAS
AF, CF‫سٌتم‬‫شرحها‬‫ا‬‫ا‬‫لحق‬AAS‫تصحٌح‬‫ناتج‬‫جمع‬‫عددٌن‬‫بشٌفرة‬
ً‫اآلسك‬AAS
‫مالحظة‬:‫إن‬‫المتحولت‬‫المستخدمة‬‫من‬‫أجل‬ً‫تعلٌمت‬‫الطرح‬SUB, SBBً‫ه‬‫نفسها‬
‫المتحولت‬‫المسموحة‬‫من‬‫أجل‬ً‫تعلٌمت‬‫الجمع‬ADD,ADC‫أما‬‫بالنسبة‬‫إلى‬
‫المتحولت‬‫المستخدمة‬‫من‬‫أجل‬‫تعلٌمة‬DECً‫فه‬‫نفسها‬‫المتحولت‬‫المسموحة‬‫من‬
‫أجل‬‫تعلٌمة‬INC‫و‬‫بالنسبة‬‫لتعلٌمة‬NEG‫فالمتحولت‬‫المسموحة‬ً‫ه‬Reg,
Reg16, Mem, Mem16.
‫مثال‬:‫بفرض‬‫أن‬SI = 0018h‫و‬DS = 2F00h‫و‬‫العنوان‬ً‫الفٌزٌائ‬‫المتولد‬‫عنهما‬
‫هو‬8F018h‫و‬‫بفرض‬‫كانت‬‫محتوٌات‬‫الحجرة‬ً‫الت‬‫ٌشٌر‬‫إلٌها‬‫العنوان‬ً‫الفٌزٌائ‬
[8F018] = 0400h،‫ما‬‫هو‬‫ناتج‬‫تنفٌذ‬‫الت‬‫علٌمة‬SUB [SI],03F8h.
‫الحل‬:
‫تقوم‬‫هذه‬‫التعلٌمة‬‫بطرح‬‫محتوٌات‬‫متحول‬‫المصدر‬(‫متحول‬‫فوري‬‫هنا‬)‫من‬
‫محتوٌات‬‫متحول‬‫الهدف‬(‫محتوٌات‬‫حجرة‬‫ذاكرة‬‫هنا‬)‫حٌث‬‫أن‬‫تعلٌمة‬‫الطرح‬‫تتم‬
‫بإٌجاد‬‫المتمم‬ً‫الثنائ‬‫لمتحول‬‫المصدر‬‫و‬‫من‬‫ثم‬‫جمعه‬‫مع‬‫متحول‬‫الهدف‬.
Destination = 0400h = 0000 0100 0000 0000 b
Source = 03F8h = 1111 1100 0000 1000 b+
18888888888881888b
‫تذكرة‬‫بالمتمم‬ً‫الثنائ‬(‫و‬‫الذي‬‫ٌشار‬‫إلٌه‬‫بوضع‬‫خطٌن‬‫فوق‬‫العدد‬‫الذي‬‫نرٌد‬‫إٌجاد‬
‫المتمم‬ً‫الثنائ‬‫له‬: )
‫إذا‬‫أردت‬‫الحصول‬‫على‬‫المتمم‬ً‫الثنائ‬‫للعدد‬83F8h‫فاعمل‬‫ما‬ً‫ٌل‬:
1)‫تحوٌل‬‫هذا‬‫العدد‬‫إلى‬‫النظام‬ً‫الثنائ‬‫فٌصبح‬8888881111111888
8)‫أقلب‬‫األصفار‬‫واحدات‬‫و‬‫الواحدات‬‫ا‬‫ا‬‫أصفار‬‫فٌنتج‬111111888888
8111
3)‫أضف‬‫واحد‬‫إلى‬‫الرقم‬‫الناتج‬‫فتحصل‬‫على‬‫المتمم‬ً‫الثنائ‬–83F8h =
1111 1100 0000 1000
‫لحظ‬‫أن‬:PF = 0‫ألن‬‫عدد‬‫الواحدات‬‫فردي‬‫ف‬ً‫الباٌت‬‫األول‬‫من‬‫الناتج‬.
AF =1‫ألنه‬‫ل‬‫ٌوجد‬‫معنا‬‫حمل‬(‫انزٌاح‬)‫عند‬‫النتقال‬‫من‬‫الخانة‬‫الثالثة‬‫إلى‬
‫الخانة‬‫الرابعة‬(‫عكس‬‫حالة‬‫الجمع‬.)
ZF = 0‫ألن‬‫النتٌجة‬‫لٌست‬‫صفرٌة‬.
SF = 0‫و‬ً‫ه‬‫قٌمة‬‫آخر‬‫خانة‬‫من‬‫الناتج‬MSB.
CF = 0‫ألن‬‫هناك‬‫انزٌاح‬ً‫خارج‬(‫عكس‬‫حالة‬‫الجمع‬.)
OF = 0‫لحصول‬‫انزٌاح‬ً‫داخل‬‫و‬‫انزٌاح‬ً‫خارج‬‫بآن‬‫واحد‬.
‫تعلٌمة‬DAS
‫تستخدم‬‫هذه‬‫التعلٌمة‬‫لتصحٌح‬‫ناتج‬‫طرح‬‫عددٌن‬‫بشٌفرة‬BCD‫حٌث‬‫ٌكمن‬‫ناتج‬
‫طرح‬‫هذٌن‬‫العددٌن‬ً‫ف‬‫المسجل‬AL‫و‬‫قاعدة‬‫التصحٌح‬ً‫ه‬:
1)if Bit3 Bit2 Bit1 Bit0 of AL > 9 or AF = 1
then AL = AL – 06 , AF = 1
8)if AL > 9Fh or CF=1
then AL = AL – 60h , CF = 1
‫مثال‬:‫بفرض‬‫أن‬AL = 86 BCD‫و‬AH = 07 BCD،‫بٌن‬‫نتٌجة‬‫التعلٌمتٌن‬
‫التالٌتٌن‬:
SUB AL,AH
DAS
‫الحل‬:
AL = 1000 0110 b
AH = 1111 1001 b+
181111111b => AL = 7Fh
‫و‬‫اآلن‬:
AF = 1‫بسبب‬‫عدم‬‫وجود‬‫انزٌاح‬‫من‬‫الخانة‬‫الثالثة‬‫إلى‬‫الخانة‬‫الرابعة‬.
CF = 0‫لوجود‬‫انزٌاح‬ً‫خارج‬
‫و‬‫بتطبٌق‬‫الشرط‬1‫من‬‫قاعدة‬‫التصحٌح‬‫نجد‬‫أن‬AL = 79h , AF = 1
‫تعلٌمة‬AAS
‫تستخدم‬‫هذه‬‫التعلٌمة‬‫لتصحٌح‬‫ناتج‬‫طرح‬‫عددٌن‬‫بالشٌفرة‬ASCII‫حٌث‬‫ٌكمن‬‫ناتج‬
‫الطرح‬ً‫ف‬AL،‫و‬‫قاعدة‬‫التصحٌح‬ً‫ه‬:
if Bit3 Bit2 Bit1 Bit0 of AL > 9 or AF = 1
then AL = AL – 06h , AL = AL and 0Fh
AH = AH – 01 , AF = 1 , CF = 1
Else AL = AL and 0Fh , AH = 00
‫مثال‬:
‫بفرض‬‫أن‬AL = 38h = 8 ASCII‫و‬BL = 35h = 5 ASCII،‫ما‬‫هو‬‫ناتج‬‫تنفٌذ‬
‫التعلٌمتٌن‬‫التالٌتٌن‬:
SUB AL,BL
AAS
‫الحل‬:
AL = 0011 1000 b
BL = 1100 1011 b+
188888811b => AL = 03h
AF = 0‫بسبب‬‫وجود‬‫انزٌاح‬‫من‬‫الخانة‬‫الثالثة‬‫إلى‬‫الخانة‬‫الرابعة‬
CF = 0‫بسبب‬‫وجود‬‫انزٌاح‬ً‫خارج‬
‫و‬‫بعد‬‫ت‬‫طبٌق‬‫قاعدة‬‫التصحٌح‬‫نجد‬AL = 03h , AH = 00
3)‫تعلٌمات‬‫الضرب‬‫و‬‫القسمة‬
‫ٌتم‬‫تطبٌق‬‫هذه‬‫التعلٌمات‬‫على‬‫األعداد‬‫الثنائٌة‬‫أو‬‫بالشٌفرة‬BCD‫أي‬ً‫ف‬‫معالجة‬
‫األعداد‬‫ذات‬‫اإلشارة‬‫و‬‫األعداد‬‫بدون‬‫إشارة‬.‫و‬‫هذه‬‫التعلٌمات‬‫مبٌنة‬ً‫ف‬‫الجدول‬
ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬ٌ‫الص‬‫غة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫أعالم‬‫الحالة‬AL.S8 → AX
AX.S16 → DX,AXMUL S‫ضرب‬‫بدن‬‫إشارة‬MUL
‫أعالم‬‫الحالة‬
Q*AX/S8+ → AL
R*AX/S8+ → AH
Q*(DX,AX)/S16+ → AX
R*(DX,AX)/S16+ → DXDIV S‫تقسٌم‬‫بدون‬‫إشارة‬DIV
‫ببساطة‬:‫النقطة‬‫تعنى‬‫عملٌة‬‫الضرب‬،‫العادٌة‬‫و‬‫الرمز‬S8ً‫ٌعن‬‫م‬‫تحول‬‫مصدر‬
‫عبارة‬‫عن‬‫باٌت‬‫أما‬‫الرمز‬Rً‫فٌعن‬ً‫باق‬‫القسمة‬‫و‬‫الرمز‬Q‫ما‬‫هو‬‫إل‬‫حاصل‬
‫قسمة‬.
‫مالحظة‬:‫إذا‬‫كانت‬‫قٌمة‬Qً‫ف‬‫الحالة‬‫األولى‬(‫حالة‬‫باٌت‬)‫مساوٌة‬‫لـ‬FF‫أو‬‫كانت‬
‫قٌمة‬Qً‫ف‬‫الحالة‬‫الثانٌة‬(‫حالة‬‫كلمة‬)‫مساوٌة‬‫إلى‬FFFFh‫فتحدث‬‫مقاطعة‬‫من‬
‫النوع‬،‫صفر‬‫و‬‫عرف‬ُ‫ت‬‫هذه‬‫ا‬‫لمقاطعة‬‫بخطؤ‬‫التقسٌم‬.
‫مالحظة‬:‫بالنسبة‬‫لتعلٌمات‬‫الضرب‬‫و‬‫التقسٌم‬‫لألعداد‬‫ذات‬‫اإلشارة‬ً‫فه‬‫مشابهة‬
‫ا‬‫ا‬‫تمام‬‫للتعلٌمات‬‫السابقة‬‫و‬‫عرف‬ُ‫ت‬‫كما‬ً‫ٌل‬:
IMULً‫ه‬‫تعلٌمة‬‫الضرب‬‫مع‬‫أخذ‬‫اإلشارة‬‫بعٌن‬‫العتبار‬.
IDIVً‫ه‬‫تعلٌمة‬‫التقسٌم‬‫مع‬‫أخذ‬‫اإلشارة‬‫بعٌن‬‫العتبار‬.
‫و‬‫تكون‬‫إشارة‬‫الن‬‫اتج‬ً‫ف‬‫كلتا‬‫التعلٌمتٌن‬‫آخر‬‫خانة‬‫منه‬‫أي‬‫خانة‬‫الـ‬MSB.
‫و‬‫باإلضافة‬‫إلى‬‫ذلك‬‫هناك‬‫التعلٌمات‬‫التالٌة‬(‫تابع‬‫لجدول‬‫الضرب‬‫و‬‫القسمة‬:)
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫أعالم‬‫الحالة‬Q*AL/10d+ → AH
R*AL/10d+ → AL
AAM‫تصحٌح‬‫الناتج‬ً‫ف‬AL‫من‬‫ضرب‬‫عد‬‫دٌن‬BCD‫أو‬‫عددٌن‬‫ثنائٌٌن‬
AAM
SF, ZF, PFAH.10d + AL → AL
88→AHAAD‫تصحٌح‬AX‫من‬‫أجل‬‫القسمة‬‫حٌث‬AX‫لٌس‬‫ناتج‬‫القسمة‬‫و‬
‫إنما‬‫هو‬‫متحول‬‫الهدف‬ً‫ف‬‫عملٌة‬‫القسمة‬.‫لذلك‬‫نطبق‬‫هذه‬‫التعلٌمة‬‫قبل‬‫تعلٌمة‬‫القسمة‬
‫على‬‫عكس‬ً‫باق‬‫تعلٌمات‬‫التصحٌح‬AAD
‫ل‬‫ٌوجد‬MSB of AL→
All bits of AHCBW‫تحوٌل‬‫باٌت‬‫إلى‬‫كلمة‬CBW
‫ل‬‫ٌوجد‬MSB of AX→
All bits of DXCBW‫تحوٌل‬‫كلمة‬‫إلى‬‫كلمة‬‫مضاعفة‬CWD
‫إن‬‫المتحولت‬‫المسموحة‬ً‫ف‬‫تعلٌمات‬‫الضرب‬‫و‬‫القسمة‬ً‫ه‬‫بالنسبة‬‫للمصدر‬S:
Mem16, Mem8, Reg16, Reg8‫و‬‫بالنسبة‬‫إلى‬‫للهدف‬D‫فالمتحول‬‫الوحٌد‬
‫المسموح‬‫هو‬‫المراكم‬‫ا‬‫ا‬‫دوم‬.
‫مالحظة‬:‫إن‬‫تعلٌمات‬‫القسمة‬‫ٌمكن‬‫استخدامها‬‫لتقسٌم‬‫المقسوم‬‫بـ‬0‫بتات‬ً‫ف‬AL‫على‬
‫مقسوم‬‫علٌه‬‫بـ‬0‫بتات‬‫ا‬‫ا‬‫أٌض‬.‫و‬‫إلنجاز‬‫هذا‬‫ٌجب‬‫ا‬‫ل‬‫أو‬‫تمدٌد‬‫إشارة‬‫المقسوم‬‫لملء‬
‫المسجل‬AX‫و‬‫هذا‬ً‫ٌعن‬‫ملء‬AH‫بؤصفار‬‫إذا‬‫كان‬‫العدد‬‫ا‬‫ا‬‫موجب‬‫أو‬‫بواحدات‬‫إذا‬‫كان‬
‫العدد‬‫ا‬‫ا‬‫سالب‬(‫أي‬‫حسب‬‫خانة‬‫اإلشارة‬)‫و‬‫تتم‬‫هذه‬‫العملٌة‬‫بواسطة‬‫التعلٌمة‬CBW.
‫و‬‫بشكل‬‫مشابه‬‫فإن‬‫تعلٌمات‬‫التقسٌم‬38‫بت‬‫على‬16‫بت‬‫ٌمكن‬‫استخدامها‬‫لتقسٌم‬
‫مقسوم‬‫ذي‬16‫بت‬ً‫ف‬AX‫على‬‫مقسوم‬‫علٌه‬‫ذي‬16‫بت‬‫و‬‫ذلك‬‫بتحوٌل‬‫الكلمة‬‫إلى‬
‫كلمة‬‫مضاعفة‬‫و‬‫ٌتم‬‫هذا‬‫بواسطة‬‫التعلٌمة‬CWD.
‫كما‬‫ذكر‬‫نا‬‫ا‬‫ا‬‫سابق‬‫فإن‬‫األعداد‬‫غٌر‬‫المجمعة‬‫ٌتم‬‫حفظها‬ً‫كالتال‬:
‫القسم‬‫العلوي‬‫من‬‫الباٌت‬‫الذي‬‫ٌحتوي‬‫على‬‫العدد‬‫غٌر‬‫المجمع‬‫ٌجب‬‫أن‬‫تكون‬‫قٌمته‬
‫مساوٌة‬‫إلى‬‫الصفر‬.
‫إن‬‫التعلٌمة‬AAM‫تستخدم‬‫لتصحٌح‬‫ناتج‬‫ضرب‬‫عددٌن‬‫غٌر‬‫مجمعٌن‬‫ألنه‬‫عند‬
‫ضرب‬‫عددٌن‬‫غٌر‬‫مجمعٌن‬‫نحصل‬‫على‬‫نتٌجة‬‫مجمعة‬‫و‬‫الن‬‫تٌجة‬‫ٌجب‬‫أن‬‫تكون‬
‫غٌر‬،‫مجمعة‬‫لذلك‬‫نصححها‬‫بواسطة‬‫التعلٌمة‬AAM.
‫مثال‬:‫بفرض‬‫أن‬BL = 09‫و‬AL = 07‫فما‬ً‫ه‬‫نتٌجة‬‫تنفٌذ‬‫التعلٌمات‬‫التالٌة‬:
MUL BL
AAM
‫الحل‬:
AX = 00 07
BX = 00 09
MUL 00 3F AX
AAM 06 03 AX
‫قاعدة‬‫التصحٌح‬ً‫ف‬‫تعلٌمة‬AADً‫ه‬:
‫إن‬‫التقسٌم‬‫بالنسبة‬‫إلى‬‫األعداد‬‫غٌر‬‫المجمعة‬‫ٌإدي‬‫إلى‬‫الحصول‬‫على‬‫نتائج‬‫خاطئة‬
‫و‬‫لذلك‬‫ٌجب‬‫تجمٌع‬‫األعداد‬‫قبل‬‫قسمتها‬.‫و‬‫بفرض‬‫أن‬AX = 0604h(‫و‬ً‫ه‬‫أعداد‬
‫غٌر‬‫مجمعة‬)‫فنتٌجة‬‫تطبٌق‬‫تعلٌمة‬‫التصحٌح‬AAD(‫و‬ً‫الت‬‫ٌتم‬‫تطبٌقها‬‫قبل‬‫عملٌة‬
‫التقسٌم‬)ً‫ه‬:
AL = 06 x 10d + 04h = 64d = 40h
AH = 00h
‫ا‬‫ا‬‫ثالث‬-‫التعلٌمات‬‫المنطقٌة‬
‫تنجز‬‫عملٌاتها‬‫المنطقٌة‬‫خانة‬‫بخانة‬‫على‬‫متحولتها‬.‫و‬‫الجدول‬ً‫التال‬‫ٌبٌن‬‫التعلٌمات‬
‫المنطقٌة‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫أعالم‬‫الحالة‬S.D → DAND D,SANDً‫المنطق‬AND
‫أعالم‬‫الحالة‬S + D → DOR D,SORً‫المنطق‬OR
‫أعالم‬‫الحالة‬
S + D → DXOR D,SXORً‫المنطق‬XOR
‫ل‬‫ٌوجد‬
D → DNOT DNOTً‫المنطق‬NOT
‫إن‬‫المتحولت‬‫المسموحة‬‫من‬‫أجل‬‫تعلٌمة‬XOR, OR, AND‫مبٌنة‬ً‫ف‬‫الجدول‬‫ا‬‫ا‬‫جانب‬:
‫ا‬‫ا‬‫رابع‬-‫تعلٌمات‬‫اإلزاحة‬
‫هناك‬‫نوعان‬‫من‬‫تعلٌمات‬‫اإلزاحة‬‫هما‬‫اإلزاحة‬ٌ‫المنطق‬‫ة‬‫و‬‫اإلزاحة‬‫الرٌاضٌة‬‫كما‬
‫هو‬‫واضح‬ً‫ف‬‫الجدول‬ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
OF,CFSAL/SHL D,count‫إزاحة‬‫رٌاضٌة‬/‫إزاحة‬‫منطقٌة‬‫و‬
‫كالهما‬‫نحو‬‫الٌسار‬SAL/SHL
‫العملٌة‬‫هنا‬ً‫ه‬‫إزاحة‬‫محتوٌات‬D‫نحو‬‫الٌسار‬‫باتجاه‬CF‫ا‬‫ا‬‫عدد‬‫من‬‫الخانات‬‫مسا‬‫ا‬‫ا‬ٌ‫و‬
‫لقٌمة‬count‫و‬‫ملء‬‫جمٌع‬‫الخانات‬‫الٌمنى‬‫المفرغة‬‫بؤصفار‬.
‫و‬‫بالنسبة‬‫لتؤثٌر‬‫هذه‬‫التعلٌمة‬‫على‬‫علم‬OF:‫إذا‬‫تبدلت‬‫خانة‬‫اإلشارة‬‫نتٌجة‬‫اإلزاحة‬
‫فإن‬OF = 1.
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
OF,CF
SHR D,count‫إزاحة‬‫منطقٌة‬‫نحو‬‫الٌمٌن‬SHR
‫ال‬‫عملٌة‬‫هنا‬ً‫ه‬‫إزاحة‬‫محتوٌات‬D‫نحو‬‫الٌمٌن‬‫باتجاه‬CF‫ا‬‫ا‬‫عدد‬‫من‬‫الخانات‬‫ا‬‫ا‬ٌ‫مساو‬
‫لقٌمة‬count‫و‬‫ملء‬‫جمٌع‬‫الخانات‬‫الٌسرى‬‫المفرغة‬‫بؤصفار‬.
‫و‬‫بالنسبة‬‫لتؤثٌر‬‫هذه‬‫التعلٌمة‬‫على‬‫العلم‬OF:‫إذا‬‫تبدلت‬‫خانة‬‫اإلشارة‬‫نتٌجة‬‫اإلزاحة‬
‫فإن‬OF = 1
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫ا‬‫لمعنى‬‫الكلمة‬‫المختزلة‬
‫أعالم‬‫الحالة‬
SAR D,count‫إزاحة‬‫رٌاضٌة‬‫نحو‬‫الٌمٌن‬SAR
‫العملٌة‬‫هنا‬ً‫ه‬‫إزاحة‬‫محتوٌات‬D‫نحو‬‫الٌمٌن‬‫باتجاه‬CF‫ا‬‫ا‬‫عدد‬‫من‬‫المرات‬‫ا‬‫ا‬ٌ‫مساو‬
‫لقٌمة‬count‫و‬‫ملء‬‫الخانات‬‫جمٌع‬‫الخانات‬‫الٌسرى‬‫بقٌمة‬‫الخانة‬MSB(‫خانة‬
‫اإلشارة‬‫أو‬‫آخر‬‫خانة‬.)
‫مالحظة‬:‫بال‬‫نسبة‬‫للتعلٌمتٌن‬SHL, SAL:‫إذا‬‫طبقنا‬‫هاتٌن‬‫التعلٌمتٌن‬‫من‬‫أجل‬‫اإلزاحة‬
‫بعدد‬‫من‬‫الخانات‬count = N‫فهذا‬ً‫ٌعن‬‫ضرب‬‫متحول‬‫الهدف‬‫بـ‬‫و‬‫الذي‬‫هو‬
‫مضاعفات‬‫العدد‬8.
‫مالحظة‬:‫إن‬‫التعلٌمة‬SHRً‫تعن‬‫تقسٌم‬‫متحول‬‫الهدف‬‫على‬‫العدد‬‫تحت‬‫كون‬LSB
= 0‫كل‬‫مرة‬‫و‬ً‫ف‬‫حـالة‬LSB = 1‫ف‬‫عندها‬‫ٌكون‬‫لدٌنا‬ً‫باق‬‫موضوع‬ً‫ف‬‫العلم‬CF.
‫مثال‬:‫اكتب‬‫ا‬‫ا‬‫برنامج‬‫ٌقوم‬‫بحساب‬‫العالقة‬‫الرٌاضٌة‬‫التالٌة‬‫ا‬‫ا‬‫مستخدم‬‫تعلٌمات‬‫اإلزاحة‬
‫و‬‫التعلٌمات‬‫الرٌاضٌة‬:
3(.AX) + 7.(BX) → DX
MOV SI,AX ; copy AX into SI
SAL SI,1 ; 2 AX
ADD SI,AX ; 3 AX
MOV DX,BX ; copy BX into DX
MOV CL,03H ; load shift count
SAL DX,CL ; 8 BX
SUB DX,BX ; 7 BX
ADD DX,SI ; result
‫إن‬‫المتحولت‬‫المسموحة‬‫بالنسبة‬‫لتعلٌمات‬‫اإلزاحة‬ً‫ه‬:
‫أي‬‫عندما‬Count‫ل‬‫ٌساوي‬‫الواحد‬‫فعندئذ‬‫ٌجب‬‫تحمٌل‬‫قٌمة‬countً‫ف‬‫المسجل‬
CL‫ثم‬‫كتابة‬‫تعلٌمات‬‫اإلزاحة‬‫أي‬:‫عندما‬count‫ٌساوي‬‫الواحد‬‫فٌمكن‬‫أن‬‫نكتب‬:
SAL AX,1
‫و‬‫عندما‬=<‫ٌجب‬‫أن‬‫نكتب‬:
MOV CL,count
SAL AX,CL
‫هذا‬‫و‬‫إن‬‫قٌمة‬count‫محددة‬‫بالمجال‬[1،FF]‫و‬‫األقواس‬‫المحٌطٌة‬‫لٌس‬‫لها‬‫عالقة‬
‫بمفهو‬‫م‬‫اإلزاحة‬‫ا‬‫ا‬‫طبع‬.
‫ا‬‫ا‬‫خامس‬-‫تعلٌمات‬‫التدوٌر‬
‫و‬ً‫ه‬‫مبٌنة‬ً‫ف‬‫الجدول‬ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
OF,CFROL D,count‫تدوٌر‬‫نحو‬‫الٌمٌن‬ROL
‫العملٌة‬‫هنا‬ً‫ه‬‫تدوٌر‬‫محتوٌات‬D‫نحو‬‫الٌسار‬‫ا‬‫ا‬‫عدد‬‫من‬‫المرات‬‫ا‬‫ا‬ٌ‫مساو‬‫لقٌمة‬
count.‫و‬‫كل‬‫خانة‬‫زاح‬ُ‫ت‬‫خارج‬‫الـ‬MSB‫توضع‬ً‫ف‬‫الخانة‬LSB‫و‬ً‫ف‬CF.
‫و‬‫بالنسبة‬‫لتؤثٌر‬‫هذه‬‫التعلٌمة‬‫على‬‫العلم‬OF‫فهو‬‫نفس‬‫المناقشة‬ً‫ف‬‫التعلٌمات‬‫السابقة‬.
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
OF,CFROR D,count‫تدوٌر‬‫نحو‬‫الٌسار‬ROR
‫العملٌة‬‫هنا‬ً‫ه‬‫تدوٌر‬‫محتوٌات‬D‫نحو‬‫الٌمٌن‬‫ا‬‫ا‬‫عدد‬‫من‬‫المرات‬‫ا‬‫ا‬ٌ‫مساو‬‫لقٌمة‬
count.‫و‬‫كل‬‫خانة‬‫زاح‬ُ‫ت‬‫خارج‬‫الـ‬LSB‫توضع‬ً‫ف‬‫الخانة‬MSB‫و‬ً‫ف‬CF.
‫و‬‫بالنسبة‬‫لـ‬OF‫فهو‬‫نفس‬‫المناقشة‬ً‫ف‬‫التعلٌمات‬‫السابقة‬.
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
OF,CF
RCL D,count‫تدوٌر‬‫نحو‬‫الٌسار‬‫عب‬‫ر‬‫الـ‬CFRCL
‫العملٌة‬‫هنا‬‫مشابهة‬‫لتعلٌمة‬ROL‫ما‬‫عدا‬‫أن‬‫المحتوى‬ً‫األصل‬‫لـ‬CF‫ٌوضع‬ً‫ف‬
‫الخانة‬LSB‫أما‬‫الخانة‬‫المزاحة‬‫خارج‬‫الـ‬MSB‫فتوضع‬ً‫ف‬CF.
‫و‬‫بالنسبة‬‫لـ‬OF‫نفس‬‫المناقشة‬‫السابقة‬.
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
OF,CF
RCR D,count‫تدو‬‫ٌر‬‫نحو‬‫الٌمٌن‬‫عبر‬‫الـ‬CFRCR
‫العملٌة‬‫هنا‬‫مشابهة‬‫لتعلٌمة‬ROR‫ما‬‫عدا‬‫أن‬‫المحتوى‬ً‫األصل‬‫لـ‬CF‫ٌوضع‬ً‫ف‬
‫الخانة‬MSB‫أما‬‫الخانة‬‫المزاحة‬‫خارج‬‫الـ‬LSB‫فتوضع‬ً‫ف‬CF.
‫و‬‫بالنسبة‬‫لـ‬OF‫نفس‬‫المناقشة‬‫السابقة‬.
‫ا‬‫ا‬‫سادس‬-‫تعلٌمات‬‫مسجالت‬‫األعالم‬
‫و‬ً‫ه‬‫مبٌنة‬ً‫ف‬‫الجدول‬ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬Flags → AH
‫النصف‬‫األول‬‫من‬‫مسجل‬‫األعالم‬‫ٌوضع‬ً‫ف‬AHLAHF‫تحمٌل‬AH‫من‬‫مسجل‬
‫األعالم‬LAHF
‫أعالم‬‫الحالة‬‫عدا‬OFAH → Flags
‫ٌوضع‬AHً‫ف‬‫النصف‬‫األول‬‫من‬‫مسجل‬‫األعالم‬SAHF‫تخزٌن‬‫قٌمة‬AHً‫ف‬
‫مسجل‬‫األعالم‬SAHF
CF8→CFCLC‫تنظٌف‬‫الـ‬CFCLC
CF1→CFSTC‫توضٌع‬‫الـ‬CFSTC
CF
CF → CFCMC‫متمم‬‫أحادي‬‫لـ‬CFCMC
IF8→IFCLI‫تنظٌف‬IFCLI
IF1→IFSTI‫توضٌع‬‫الـ‬IFSTI
‫ا‬‫ا‬‫سابع‬-‫تعلٌمات‬‫المقارنة‬
‫تسمح‬‫تعلٌمة‬‫المقارنة‬CMP‫بمقارنة‬‫عددٌن‬‫بـ‬0‫بت‬‫أو‬16‫بت‬‫و‬ً‫ه‬‫مشروحة‬
‫بال‬‫جدول‬ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫أعالم‬‫الحالة‬D – S
‫تتؤثر‬‫األعالم‬CMP D,S‫مقارنة‬‫عددٌن‬CMP
‫تجري‬‫عملٌة‬‫الطرح‬‫ا‬‫ا‬ٌ‫ضمن‬‫دون‬‫تخزٌن‬‫نتٌجتها‬ً‫ف‬‫متحول‬‫الهدف‬D(‫أي‬‫تبقى‬
‫ا‬‫ال‬‫ك‬‫من‬‫محتوٌات‬‫المصدر‬S‫و‬‫محتوٌات‬‫الهدف‬D‫على‬‫حالها‬)‫و‬‫تستعمل‬‫هذه‬
‫التعلٌمة‬‫لجعل‬‫أعالم‬‫الحالة‬‫تؤخذ‬‫قٌمة‬‫واحد‬ً‫منطق‬‫أو‬‫صفر‬ً‫منطق‬.‫إن‬‫المتحولت‬
‫المسموحة‬‫لهذه‬‫التعلٌمة‬‫مبٌنة‬ً‫ف‬‫الجدول‬ً‫التال‬:
‫ا‬‫ا‬‫ثامن‬-‫تعلٌمات‬‫القفز‬
‫الغاٌة‬‫من‬‫تعلٌمة‬‫القفز‬ً‫ه‬‫تعدٌل‬‫طرٌق‬‫تنفٌذ‬‫التعلٌمات‬ً‫ف‬‫البرنامج‬.‫و‬‫هناك‬‫نوعان‬
‫من‬‫تعلٌمات‬،‫القفز‬ً‫وه‬:‫القفز‬‫المشروط‬‫و‬‫القفز‬‫غٌر‬‫المشروط‬.ً‫ف‬‫القفز‬‫غٌر‬
‫المشروط‬‫ل‬‫ٌوجد‬‫أي‬‫شروط‬‫من‬‫أجل‬‫حدوث‬‫القفز‬‫أما‬ً‫ف‬‫القفز‬‫المشروط‬‫فإن‬
‫الحالت‬‫الشرطٌة‬‫الموجودة‬ً‫ف‬‫لحظة‬‫تنفٌذ‬‫تعلٌمة‬‫القفز‬‫تتخذ‬‫القرار‬‫فٌما‬‫إذا‬‫سٌحدث‬
‫القفز‬‫أم‬،‫ل‬ً‫فف‬‫حال‬‫تحقق‬‫الحالت‬‫الشرطٌة‬‫فإنه‬‫ٌتم‬،‫القفز‬‫و‬‫إل‬‫ُتابع‬ٌ‫التنفٌذ‬
‫بالتعلٌمة‬ً‫الت‬ً‫تل‬‫تعلٌمة‬‫القفز‬ً‫ف‬‫البرنامج‬.
1)‫تعلٌمة‬‫القفز‬‫غٌر‬‫المشروط‬
‫و‬ً‫ه‬‫مشروحة‬ً‫ف‬‫الجدول‬ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬‫القفز‬‫إلى‬‫العنوان‬‫المحدد‬‫بواسطة‬‫المتحول‬operandJMP
operand‫قفز‬‫غٌر‬‫مش‬‫روط‬JMP
‫هناك‬‫نوعان‬‫أساسٌان‬‫من‬‫القفز‬‫غٌر‬‫المشروط‬‫األول‬‫ٌدعى‬‫بالقفز‬‫ضمن‬‫المقطع‬
،ً‫الجزئ‬‫و‬ً‫الثان‬‫هو‬‫القفز‬‫بٌن‬‫المقاطع‬‫الجزئٌة‬‫أي‬‫نا‬ُ‫ن‬ِ‫ك‬َ‫م‬ٌُ‫من‬‫القفز‬‫من‬‫أحد‬‫مقاطع‬
‫الشٌفرة‬‫إلى‬‫مقطع‬‫آخر‬‫و‬‫إن‬‫تحقٌق‬‫هذا‬‫النوع‬‫من‬‫القفز‬‫ٌتطلب‬‫منا‬‫تعدٌل‬‫محتوٌات‬
‫كل‬‫من‬‫مقطع‬‫ال‬CS‫و‬‫مسجل‬‫مإشر‬‫التعلٌمة‬IP،‫أما‬‫القفز‬‫ضمن‬‫المقطع‬ً‫الجزئ‬
‫فإنه‬‫ٌتطلب‬‫منا‬‫تعدٌل‬‫قٌمة‬‫ال‬IP‫فقط‬.
‫إن‬‫المتحولت‬‫المسموحة‬‫لتعلٌمة‬‫القفز‬‫غٌر‬‫المشروط‬ً‫ه‬:
‫القفز‬‫ضمن‬‫المقطع‬ً‫الجزئ‬
‫أ‬)‫إن‬‫متحولت‬‫الالفتة‬‫القصٌرة‬‫و‬‫الالفتة‬‫القرٌبة‬‫تحدد‬‫القفز‬ً‫النسب‬‫لعنوان‬‫تعلٌمة‬
‫القفز‬‫نفسها‬‫فم‬ُ‫ال‬‫ث‬ً‫ف‬‫تعلٌمة‬‫القفز‬‫بالالفتة‬‫القصٌرة‬‫ٌتم‬‫تشفٌر‬‫العدد‬‫ذي‬0‫بت‬
‫كمتحول‬‫فوري‬‫لتحدٌد‬‫اإلزاحة‬(Disp)‫ذات‬‫اإلشارة‬ً‫الت‬‫تشٌر‬‫إلى‬‫التعلٌمة‬‫التالٌة‬
ً‫الت‬‫سٌتم‬‫تنفٌذها‬‫من‬‫حجرة‬‫تعلٌمة‬،‫القفز‬‫و‬‫عندما‬‫تنفذ‬‫تعلٌمة‬‫القفز‬‫ٌعاد‬‫شحن‬‫ال‬IP
‫بقٌمة‬‫جدٌدة‬‫موضحة‬‫كما‬ً‫ٌل‬:
‫قٌمة‬IP‫ال‬‫جدٌدة‬(] =‫قٌمة‬IP+‫طول‬‫شٌفرة‬‫تعلٌمة‬‫القفز‬+ )‫مقدار‬‫اإلزاحة‬‫ذات‬
‫اإلشارة‬‫بعد‬‫تمدٌدها‬‫بجعل‬‫متحول‬0‫بتات‬‫بالشكل‬16‫بت‬[
‫إن‬‫القٌمة‬‫الجدٌدة‬‫لـ‬IP‫مع‬‫قٌمة‬CS‫الحالٌة‬ً‫تعط‬‫العنوان‬ً‫الفٌزٌائ‬‫للتعلٌمة‬‫التالٌة‬
ً‫الت‬‫ستجلب‬‫و‬‫تنفذ‬.
‫مثال‬:
‫لٌكن‬‫لدٌنا‬
IP = 0112h
JMP disp ; disp = 0F2h
‫إن‬‫عنوان‬‫تعلٌمة‬‫القفز‬(‫موجود‬‫تحت‬‫العنوان‬‫المخزن‬ً‫ف‬IP)،‫إذن‬‫سٌتم‬‫القفز‬
‫إلى‬‫التعلٌمة‬‫ذات‬‫العنوان‬ً‫التال‬:
address‫العنوان‬ً‫المنطق‬=IP + 2 + disp(‫بعد‬‫تمدٌد‬‫إشارتها‬= )8118+
8+FFF2 = 0106h(‫أهملنا‬‫خانة‬‫الحمل‬)
‫بما‬‫أن‬‫العنوان‬‫الناتج‬‫أصغر‬‫من‬‫عنوان‬‫تعلٌمة‬‫القفز‬‫فهذا‬ً‫ٌعن‬‫أننا‬‫نقفز‬‫إلى‬‫تعلٌمة‬
‫تسبق‬‫تعلٌمة‬‫القفز‬‫أي‬‫القفز‬‫نحو‬‫الــوراء‬8186<8118.
‫مثال‬‫آخر‬:
IP = 0112h
JMP 04
Address = 0112 + 2 + 0004 = 0118h
‫نالحظ‬‫أن‬8110>8118‫فهذا‬ً‫ٌعن‬‫أن‬‫القفز‬‫نحو‬‫األمام‬.
‫و‬‫للحصول‬‫على‬‫العنوان‬‫الفٌزٌائ‬ً‫ٌجب‬‫إضافة‬‫مقدار‬‫ال‬CS‫لقٌمة‬address.
‫مالحظة‬:‫بما‬‫أن‬‫متحول‬‫الالفتة‬‫القصٌرة‬‫ذو‬0‫بتات‬‫فهو‬‫ٌسمح‬‫بالقفز‬ً‫ف‬‫المجال‬‫من‬
186-‫إلى‬189+‫و‬‫سبب‬‫ذلك‬‫أنه‬‫إذا‬‫أضفنا‬‫طول‬‫شٌفرة‬‫تعلٌمة‬‫القفز‬‫و‬‫هو‬8‫باٌت‬
‫إلى‬‫المجال‬ً‫التال‬‫من‬180-‫إلى‬181+‫سنحصل‬‫على‬‫المجال‬‫السابق‬.‫أما‬‫متحو‬‫ل‬
‫الالفتة‬‫القرٌبة‬‫فهو‬‫متحول‬‫فوري‬‫ذو‬16‫بت‬‫و‬‫لذلك‬‫ٌسمح‬‫بالقفز‬‫ضمن‬‫مجال‬
‫ٌساوي‬38KB‫نحو‬‫الخلف‬‫أو‬‫نحو‬‫األمام‬‫من‬‫عنوان‬‫تعلٌمة‬‫القفز‬.
‫مثال‬:
JMP label
‫هذا‬ً‫ٌعن‬‫القفز‬‫إلى‬‫نقطة‬ً‫ف‬‫البرنامج‬‫مقابلة‬‫للمتحول‬label‫حٌث‬‫تتم‬‫إضافة‬‫هذا‬
‫المتحول‬(‫اإلزاحة‬16‫بت‬)‫إلى‬‫قٌمة‬‫ال‬IP‫و‬‫القٌمة‬‫الجدٌدة‬‫لـ‬IP‫و‬‫القٌمة‬‫الحالٌة‬
ً‫ف‬CSً‫تعط‬‫العنوان‬ً‫الفٌزٌائ‬‫للتعلٌمة‬ً‫الت‬‫ستنفذ‬.
‫ب‬)‫ٌمكن‬‫تحدٌد‬‫القفز‬‫إلى‬‫عنوان‬‫بشكل‬‫غٌر‬‫مباشر‬‫بواسطة‬‫محتوٌات‬‫حجرة‬‫ذاكرة‬
‫أو‬‫محتوٌات‬‫مسجل‬‫أي‬‫باستخدام‬‫متحول‬‫مإشر‬‫ذاكري‬16‫بت‬‫أو‬‫متحول‬‫مإشر‬
ً‫مسجل‬16‫بت‬‫و‬‫هنا‬‫ا‬‫ا‬‫أٌض‬ٌ‫تم‬‫القفز‬‫ضمن‬‫مجال‬.
‫مثال‬:
JMP BX
ً‫ف‬‫هذه‬‫التعلٌمة‬‫ُستعمل‬ٌ‫مضمون‬‫المسجل‬BX‫من‬‫أجل‬‫اإلزاحة‬‫و‬‫هذا‬ً‫ٌعن‬‫أن‬‫قٌمة‬
BX‫ٌتم‬‫تحمٌلها‬ً‫ف‬IP‫ثم‬‫ٌحسب‬‫العنوان‬ً‫الفٌزٌائ‬‫للتعلٌمة‬ً‫الت‬‫سٌتم‬‫القفز‬‫إلٌها‬
‫باستعمال‬‫المحتوٌات‬‫الحالٌة‬‫لـ‬CS‫و‬‫القٌمة‬‫الجدٌدة‬‫لـ‬IP.
‫بفرض‬‫أن‬:
BX = 0200h
CS = 0100h
PA = ( CS x 10h ) + BX = 01000 + 0200 = 01200h
‫مالحظة‬:‫ٌمكن‬‫استخدام‬‫مختلف‬‫أنواع‬‫أنظمة‬‫العنونة‬‫لتحدٌد‬‫المتحول‬‫المستعمل‬
‫كمإشر‬‫ذاكري‬‫ا‬‫ال‬‫فمث‬JMP [SI]ً‫فف‬‫هذه‬‫التعلٌمة‬‫تستعمل‬‫محتوٌات‬SI‫كعنوان‬
‫حجرة‬‫الذاكرة‬ً‫الت‬‫تحتوي‬‫على‬‫العنوان‬،‫الفعال‬‫هذ‬‫ا‬‫العنوان‬‫ٌتم‬‫تحمٌله‬ً‫ف‬IP‫و‬
‫الذي‬‫ُستعمل‬ٌ‫مع‬‫محتوٌات‬CS‫الحالٌة‬‫لحساب‬‫العنوان‬ً‫الفٌزٌائ‬‫للتعلٌمة‬ً‫الت‬‫سٌتم‬
‫القفز‬‫إلٌها‬‫و‬‫عادة‬ً‫ف‬‫هذه‬‫الحالة‬‫تستخدم‬‫المسجالت‬‫التالٌة‬:DI, SI, BX.
‫القفز‬‫بٌن‬‫المقاطع‬‫الجزئٌة‬‫أو‬‫القفز‬‫خارج‬‫المقطع‬‫الجزئٌة‬
‫أ‬)‫ِل‬‫م‬‫ستع‬َ‫ت‬‫الالفتة‬‫الب‬‫عٌدة‬‫ا‬‫ل‬‫متحو‬‫ا‬‫ا‬ٌ‫فور‬‫ذا‬38‫بت‬‫لتحدٌد‬‫القفز‬‫إلى‬‫عنوان‬‫ما‬.‫حٌث‬
‫ٌتم‬‫تحمٌل‬‫الـ‬16‫بت‬‫األولى‬‫من‬‫هذا‬‫المتحول‬ً‫ف‬IP‫و‬‫تكون‬ً‫ه‬‫العنوان‬‫الفعال‬
‫نسبة‬‫لمحتوٌات‬‫المسجل‬CS‫أما‬‫الـ‬16‫بت‬‫الثانٌة‬‫فٌتم‬‫تحمٌلها‬ً‫ف‬‫المسجل‬CS‫و‬
ً‫الت‬‫تحدد‬‫مقطع‬‫الشٌفرة‬‫الجدٌد‬.
‫مثال‬:
JMP farlabel
‫حٌث‬farlabel‫هو‬‫متحول‬‫بـ‬38‫بت‬(‫الكلمة‬‫األول‬‫تشحن‬ً‫ف‬IP‫و‬‫الكلمة‬‫الثانٌة‬
‫تشحن‬ً‫ف‬‫الـ‬CS.)
‫ب‬)‫إن‬‫الطرٌقة‬‫غٌر‬‫المباشرة‬‫لتحدٌد‬‫العنوان‬‫الفعال‬‫و‬‫عنوان‬‫مقطع‬‫الشٌفرة‬‫من‬
‫أجل‬‫القفز‬‫بٌن‬‫المقاطع‬‫الجزئٌة‬ً‫ه‬‫باستعمال‬‫متحول‬‫مإشر‬‫ذاكري‬‫بـ‬38‫بت‬.‫و‬
ً‫ف‬‫هذه‬‫الحالة‬‫فإن‬‫أ‬‫ربع‬‫باٌتات‬‫من‬‫الذاكرة‬‫متتابعة‬‫ا‬‫ا‬‫اعتبار‬‫من‬‫العنوان‬‫المحدد‬
‫تحتوي‬‫على‬‫العنوان‬‫الفعال‬‫و‬‫عنوان‬‫مقطع‬‫الشٌفرة‬‫الجدٌد‬‫على‬‫الترتٌب‬.‫و‬‫هنا‬
‫ا‬‫ا‬‫أٌض‬‫ٌمكن‬‫استخدام‬‫أي‬‫نوع‬‫من‬‫أنواع‬‫أنظمة‬‫العنونة‬،‫المختلفة‬‫مثال‬:
JMP farseg [DI]ً‫فف‬‫هذه‬‫التعلٌمة‬‫ستعمل‬ُ‫ت‬‫محتوٌات‬DS, DI‫لحساب‬‫عنوان‬
‫حجرة‬‫الذاكرة‬ً‫الت‬‫تتضمن‬‫الكلمة‬‫األولى‬‫للمإشر‬‫الذي‬‫ف‬ِّ‫ُعر‬ٌ‫الحجرة‬ً‫الت‬‫سٌتم‬
‫القفز‬،‫إلٌها‬‫فإذا‬‫كان‬:
DI = 0200h‫إن‬‫العنوان‬ً‫الفٌزٌائ‬‫للمإشر‬‫هو‬:
DS = 0100h PA = DS x 10h + DI = 01000 + 0200 =
01200h
‫و‬‫لتكن‬‫محتوٌات‬‫هذه‬‫الح‬‫جرة‬‫و‬‫الحجرات‬ً‫الت‬‫تلٌها‬‫كما‬‫هو‬‫واضح‬ً‫ف‬‫الشكل‬
ً‫التال‬:
‫قٌمة‬IP‫الجدٌدة‬ً‫ه‬IP = 3010hContentAddress ( h)
‫قٌمة‬CS‫الجدٌدة‬ً‫ه‬CS = 0400h1881888
‫إذن‬‫العنوان‬ً‫الفٌزٌائ‬‫للتعلٌمة‬ً‫الت‬‫سٌتم‬‫القفز‬‫إلٌها‬‫هو‬:3881881
PA = CS x 10h + IP = 07010h8881888
8481883
8)‫تعلٌمة‬‫القفز‬‫المشروط‬
‫و‬ً‫ه‬‫مشروحة‬ً‫ف‬‫الجدول‬ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬‫إذا‬‫تحقق‬‫الشرط‬cc‫فإنه‬‫ٌتم‬‫القفز‬‫إلى‬‫العنوان‬‫المحدد‬‫بواسطة‬
‫المتحول‬‫و‬‫إل‬‫فٌتم‬‫تنفٌذ‬‫التعلٌمة‬‫التالٌة‬‫لتعلٌمة‬‫القفز‬Jcc‫متحول‬‫قفز‬
‫مشروط‬Jcc
‫هناك‬10‫من‬‫تعلٌمات‬‫القفز‬‫المشروط‬‫و‬ً‫ه‬‫مشروحة‬ً‫ف‬‫الجدول‬ً‫التال‬:
‫المعنى‬‫الكلمة‬‫المختزلة‬
‫القفز‬‫إذا‬‫كان‬CF = 1JC
‫القفز‬‫إذا‬‫كان‬CF = 0JNC
‫القفز‬‫إذا‬‫كان‬OF = 1JO
‫القفز‬‫إذا‬‫كان‬OF = 0JNO
‫القفز‬‫إذا‬‫كان‬SF = 1JS
‫القفز‬‫إذا‬‫كان‬SF = 0JNS
‫القفز‬‫إذا‬‫كان‬CX = 0000JCXZ
‫القفز‬ً‫ف‬‫حالة‬‫التساوي‬/‫أو‬‫إذا‬‫كان‬‫الناتج‬‫ٌساوي‬‫الصفر‬JE/JZ
‫القفز‬‫إذا‬‫كان‬‫أكبر‬‫أو‬‫ٌساوي‬/‫القفز‬‫إذا‬‫لم‬‫ٌكن‬‫أصغر‬JGE/JNL
‫القفز‬‫إذا‬‫كان‬‫فوق‬/‫القفز‬‫إذا‬‫لم‬‫ٌكن‬‫تحت‬‫أو‬‫ٌساوي‬JA/JNBE
‫القفز‬‫إذا‬‫كان‬‫فوق‬‫أو‬‫ٌساوي‬/‫القفز‬‫إذا‬‫لم‬‫ٌكن‬‫تحت‬JAE/JNB
‫القفز‬‫إذا‬‫كان‬‫تحت‬/‫ال‬‫قفز‬‫إذا‬‫لم‬‫ٌكن‬‫فوق‬‫أو‬‫ٌساوي‬JB/JNAE
‫القفز‬‫إذا‬‫كان‬‫تحت‬‫أو‬‫ٌساوي‬/‫القفز‬‫إذا‬‫لم‬‫ٌكن‬‫فوق‬JBE/JNA
‫القفز‬‫إذا‬‫كان‬‫أكبر‬/‫القفز‬‫إذا‬‫لم‬‫ٌكن‬‫أصغر‬‫أو‬‫ٌساوي‬JG/JNLE
‫القفز‬‫إذا‬‫كان‬‫أصغر‬‫أو‬‫ٌساوي‬/‫القفز‬‫إذا‬‫لم‬‫ٌكن‬‫أكبر‬JLE/JNG
‫القفز‬‫إذا‬‫لم‬‫ٌكن‬‫ٌساوي‬/‫القفز‬‫إذا‬‫كان‬‫الناتج‬‫ٌساو‬‫ي‬‫قٌمة‬‫غٌر‬‫صفرٌة‬JNE/JNZ
‫القفز‬‫إذا‬‫كانت‬‫خانة‬Parity‫غٌر‬‫موجودة‬/‫القفز‬‫إذا‬‫كان‬PF = 0JNB/JBO
‫القفز‬ً‫ف‬‫حالة‬‫وجود‬‫خانة‬Parity/‫القفز‬‫إذا‬‫كان‬PF = 1JP/JPE
‫مالحظة‬:
‫للتمٌٌز‬‫بٌن‬‫مقارنة‬‫األعداد‬‫ذات‬‫اإلشارة‬‫و‬‫األعداد‬‫بدون‬‫إشارة‬‫فإن‬‫هناك‬‫اسمٌن‬
‫مختلفٌن‬‫ٌبدو‬‫أنهما‬‫نفس‬‫الشًء‬ً‫ف‬‫تعلٌمات‬‫القفز‬‫و‬‫هما‬‫فوق‬(A)‫و‬‫تحت‬(B)
‫من‬‫أجل‬‫مقارنة‬‫األعداد‬‫بدون‬،‫إشارة‬‫و‬‫أصغر‬(L)‫و‬‫أكبر‬(G)‫من‬‫أجل‬‫مقارنة‬
‫األعداد‬‫ذات‬‫اإلشارة‬.‫ا‬‫ال‬‫فمث‬‫العدد‬ABCDh‫هو‬‫فوق‬‫العدد‬1834h‫إذا‬‫اعتبرناهما‬
‫عددٌن‬‫بدون‬‫إشارة‬.‫أما‬‫إذا‬‫اعتبرناهما‬‫بإشارة‬‫فإن‬ABCDh‫هو‬‫عدد‬‫سالب‬‫و‬
1834h‫هو‬‫عدد‬‫موجب‬‫و‬‫لذلك‬ABCDh‫هو‬‫أصغر‬‫من‬1834h.
‫البرامج‬‫الفرعٌة‬SUBROUTINES
ً‫ه‬‫إجراءات‬‫مكتوبة‬‫بشكل‬‫مستقل‬‫عن‬‫البرنامج‬ً‫الرئٌس‬.‫متى‬‫وجب‬‫على‬‫البرنامج‬
ً‫الرئٌس‬‫أن‬‫ٌنجز‬‫الوظٌفة‬‫المحددة‬‫بواسطة‬‫البرنامج‬ً‫الفرع‬‫فإنه‬ً‫ٌستدع‬‫البرنامج‬
ً‫الفرع‬‫إلى‬‫العمل‬‫و‬‫من‬‫أجل‬‫هذا‬‫ٌجب‬‫أن‬‫ٌتحول‬‫التحكم‬‫من‬‫البرنامج‬ً‫الرئٌس‬‫إلى‬
‫نقطة‬‫البداٌة‬ً‫ف‬‫البرنامج‬،ً‫الفرع‬‫حٌث‬‫ٌستمر‬‫تنفٌذ‬‫البرنامج‬،ً‫الفرع‬‫و‬‫عند‬
‫اكتمال‬‫التنفٌذ‬‫ٌعود‬‫التحكم‬‫إلى‬‫البرنامج‬ً‫الرئٌس‬‫بالتعلٌمة‬‫التالٌة‬‫لتعلٌمة‬‫مناداة‬
‫البرنامج‬ً‫الفرع‬:
‫مالحظة‬:
‫إن‬‫الفرق‬‫بٌن‬‫العمل‬‫ل‬‫مناداة‬‫البرنامج‬ً‫الفرع‬‫و‬‫القفز‬‫هو‬‫أن‬‫مناداة‬‫البرنامج‬ً‫الفرع‬
‫ل‬‫تنتج‬‫ا‬‫ا‬‫قفز‬‫فقط‬‫إلى‬‫العنوان‬‫المناسب‬ً‫ف‬‫ذاكرة‬‫تخزٌن‬‫البرنامج‬‫و‬‫لكنها‬‫ا‬‫ا‬‫أٌض‬‫تملك‬
‫تقنٌة‬‫من‬‫أجل‬‫حفظ‬‫المعلومات‬‫مثل‬IP‫و‬CSً‫الت‬‫تكون‬‫مطلوبة‬‫للعودة‬‫إلى‬‫البرنامج‬
ً‫الرئٌس‬.
‫تعلٌمات‬‫المناداة‬‫و‬‫العودة‬
‫ا‬‫ال‬‫ك‬‫هاتٌن‬‫التعلٌمتٌن‬‫ا‬‫ا‬‫مع‬‫زودان‬ُ‫ت‬‫تقنٌة‬‫من‬‫أجل‬‫استدعاء‬‫البرنامج‬ً‫الفرع‬‫إلى‬‫العمل‬
‫و‬‫إعادة‬‫التحكم‬‫إلى‬‫البرنامج‬ً‫األساس‬‫لمتابعة‬‫تنفٌذه‬.‫إن‬‫تعلٌمة‬‫المناداة‬‫مشروحة‬ً‫ف‬
‫الجدول‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬‫ُتابع‬ٌ‫التنفٌذ‬ً‫ف‬‫البرنامج‬ً‫الفرع‬‫من‬‫العنوان‬‫المحدد‬‫بواسطة‬‫المتحول‬
operand‫الموجود‬ً‫ف‬‫تعلٌمة‬‫المناداة‬.‫و‬‫المعلومات‬‫المطلوبة‬‫من‬‫أجل‬‫العودة‬‫مثل‬
IP‫و‬CS‫حفظ‬ُ‫ت‬ً‫ف‬‫المكدس‬CALL operand‫مناداة‬‫برنامج‬ً‫فرع‬CALL
‫هناك‬5‫أنواع‬‫للمتحولت‬‫المسموح‬‫باستخدامها‬‫مع‬‫تعلٌمة‬‫المناداة‬‫و‬ً‫ه‬:
‫إن‬‫المتحولت‬‫الثالثة‬‫األولى‬‫مخصصة‬‫للمناداة‬‫ضمن‬‫المقطع‬ً‫الجزئ‬‫للبرنامج‬
ً‫الفرع‬(‫أي‬‫البرنامج‬ً‫الرئٌس‬‫و‬‫البرنامج‬ً‫الفرع‬‫ٌقعان‬ً‫ف‬‫نفس‬‫مقطع‬‫الشٌفرة‬)
‫حٌث‬‫أن‬‫تنفٌذ‬‫تعلٌمة‬‫المناداة‬‫ٌسبب‬‫حفظ‬‫محتوٌات‬IPً‫ف‬‫المكدس‬‫ألنه‬‫سوف‬‫ٌتم‬
‫تعدٌل‬‫قٌمة‬IP‫ا‬‫ا‬ٌ‫آل‬‫لتتالئم‬‫مع‬‫البرنامج‬ً‫الفرع‬.‫و‬‫ع‬‫ندئذ‬‫ٌنقص‬‫مإشر‬‫المكدس‬
‫بمقدار‬8،‫إن‬‫القٌمة‬‫المحفوظة‬ً‫ف‬IP‫ضمن‬‫المكدس‬ً‫ه‬‫عنوان‬‫التعلٌمة‬ً‫الت‬ً‫تل‬
‫تعلٌمة‬‫المناداة‬.
‫بعد‬‫وضع‬‫قٌمة‬IPً‫ف‬‫المكدس‬(‫أي‬‫حفظ‬‫العنوان‬‫الذي‬‫سنعود‬‫إلٌه‬‫بعد‬‫تنفٌذ‬
‫البرنامج‬ً‫الفرع‬)‫ٌتم‬‫شحن‬IP‫بعنوان‬‫و‬‫بقٌمة‬‫جدٌدة‬‫ذات‬16‫بت‬‫هذه‬‫القٌمة‬ٌ‫تش‬‫ر‬
‫إلى‬‫عنوان‬‫التعلٌمة‬‫األولى‬‫من‬‫تعلٌمات‬‫البرنامج‬ً‫الفرع‬‫المخزنة‬ً‫ف‬،‫الذاكرة‬‫و‬
‫ٌمكن‬‫ذكر‬‫تعلٌمة‬‫المناداة‬‫ضمن‬‫المقطع‬ً‫الجزئ‬‫على‬‫الشكل‬ً‫التال‬‫كؤمثلة‬‫على‬
‫متحوات‬‫الجدول‬‫السابق‬‫و‬‫على‬‫الترتٌب‬:
CALL near_proc
CALL [SI]
CALL BX
‫أما‬‫النوع‬‫اآلخر‬‫لتعلٌمة‬‫المناداة‬(‫المن‬‫اداة‬‫خارج‬‫المقطع‬ً‫الجزئ‬)‫فهو‬‫ٌسمح‬
‫للبرنامج‬ً‫الفرع‬‫بؤن‬‫ٌكمن‬ً‫ف‬‫مقطع‬‫شٌفرة‬،‫آخر‬‫و‬ً‫ف‬‫هذه‬‫الحالة‬‫تستخدم‬
‫المتحولت‬‫التالٌة‬Far_pro،Memptr32‫كما‬‫هو‬‫واضح‬ً‫ف‬‫الجدول‬‫السابق‬.
‫تحدد‬‫هذه‬‫المتحولت‬‫ا‬‫ال‬‫ك‬‫من‬‫العنوان‬‫الجدٌد‬‫لـ‬IP‫و‬‫عنوان‬‫المقطع‬‫الجدٌد‬‫لـ‬CS.
ً‫ف‬‫كلتا‬‫ا‬‫لحالتٌن‬‫فإن‬‫تنفٌذ‬‫تعلٌمة‬‫المناداة‬‫ٌسبب‬‫حفظ‬‫محتوٌات‬‫المسجالت‬CS‫ثم‬IP
ً‫ف‬‫المكدس‬‫و‬‫من‬‫ثم‬‫تحمٌل‬‫القٌم‬‫الجدٌدة‬‫المحددة‬‫بالمتحول‬operandً‫ف‬IP‫و‬CS
.‫إن‬‫القٌم‬‫المختزنة‬‫لـ‬CS‫و‬IPً‫ف‬‫المكدس‬‫تسمح‬‫بالعودة‬‫إلى‬‫البرنامج‬ً‫الرئٌس‬‫من‬
‫مقطع‬‫شٌفرة‬‫آخر‬.‫إن‬‫المتحول‬Far_proc‫ٌمثل‬‫ا‬‫ل‬‫متحو‬‫ا‬‫ا‬ٌ‫فور‬‫بـ‬38‫بت‬‫و‬‫الذي‬
‫ٌكون‬‫ا‬‫ا‬‫مخزن‬ً‫ف‬‫الباٌتات‬‫األربعة‬ً‫الت‬ً‫تل‬‫رمز‬‫التعلٌمة‬(opcode)‫لتعلٌمة‬
‫المناداة‬ً‫ف‬‫ذاكرة‬‫البرنامج‬.
‫مثال‬:
CALL 01234321‫حٌث‬‫أن‬‫هاتان‬‫الكلمتان‬‫ٌتم‬‫تحمٌلهما‬‫مباشرة‬‫من‬‫ذاكرة‬‫تخزٌن‬
‫البرنامج‬ً‫ف‬IP‫و‬CS‫حٌث‬CS‫هو‬‫مقطع‬‫الشٌف‬‫رة‬‫للبرنامج‬ً‫الفرع‬.‫إن‬‫عنوان‬
‫التعلٌمة‬‫األولى‬ً‫ف‬‫البرنامج‬ً‫الفرع‬‫ٌكون‬‫ا‬‫ا‬‫محدد‬‫بالكلمة‬‫األولى‬‫بعد‬‫تعلٌمة‬CALL
‫أي‬‫ٌخزن‬‫ضمن‬IP.‫أما‬‫بالنسبة‬‫لمتحول‬‫المإشر‬‫من‬‫نوع‬‫ذاكري‬‫بـ‬38‫بت‬‫فإن‬
‫المإشر‬‫للبرنامج‬ً‫الفرع‬‫ٌكون‬‫ا‬‫ا‬‫مخزن‬‫كؤربعة‬‫باٌتات‬ً‫ف‬‫ذاكرة‬،‫المعطٌات‬‫و‬
‫الحجرة‬‫األ‬‫ولى‬‫للمإشر‬‫ٌمكن‬‫تحدٌدها‬‫بشكل‬‫مباشر‬‫بواسطة‬‫أحد‬‫المسجالت‬(‫المثال‬
‫هنا‬‫هو‬‫نفس‬‫مثال‬‫القفز‬JMP farseg [DI]‫السابق‬.)
‫إن‬‫كل‬‫برنامج‬ً‫فرع‬‫ٌجب‬‫أن‬ً‫ٌنته‬‫بتنفٌذ‬‫التعلٌمة‬ً‫الت‬‫تعٌد‬‫التحكم‬‫إلى‬‫البرنامج‬
ً‫الرئٌس‬‫و‬‫هذه‬‫التعلٌمة‬ً‫ه‬‫تعلٌمة‬‫العودة‬RET‫و‬ً‫ه‬‫مشروحة‬‫بالجدول‬‫الت‬ً‫ال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬
RET/RET operand‫العودة‬‫إلى‬‫البرنامج‬ًِ‫ُستدع‬‫م‬‫ال‬RET
‫العودة‬‫إلى‬‫البرنامج‬ً‫المستدع‬‫عن‬‫طرٌق‬‫إعادة‬‫تخزٌن‬‫قٌم‬IP‫فقط‬
‫أو‬IP‫و‬CS‫ا‬‫ا‬‫مع‬(‫حسب‬‫نوع‬‫تعلٌمة‬‫المناداة‬‫أي‬‫ضمن‬‫المقطع‬ً‫الجزئ‬‫أو‬‫خ‬‫ارجه‬)
‫من‬‫أجل‬‫المتحول‬Far_pro.‫و‬‫إذا‬‫كان‬‫المتحول‬(operand)‫ا‬‫ا‬‫موجود‬ً‫ف‬‫تعلٌمة‬
‫العودة‬RET‫فٌجب‬‫إضافته‬‫إلى‬‫محتوٌات‬SP.‫هذا‬‫و‬‫إن‬‫المتحول‬‫إذا‬‫وجد‬ً‫ف‬
‫تعلٌمة‬‫العودة‬‫فهو‬‫عبارة‬‫عن‬‫متحول‬‫إزاحة‬‫بـ‬16‫بت‬.
‫ا‬‫ا‬‫تاسع‬-‫تعلٌمات‬‫الدفع‬‫و‬‫السحب‬
‫إن‬‫التعلٌمة‬‫المستخدمة‬‫لحفظ‬‫البا‬‫رامترات‬ً‫ف‬‫المكدس‬ً‫ه‬‫تعلٌمة‬‫الدفع‬PUSH‫و‬
‫التعلٌمة‬‫المستخدمة‬‫لسترجاعها‬ً‫ه‬‫تعلٌمة‬POP.‫بعد‬‫سٌاق‬‫التحوٌل‬‫إلى‬‫البرنامج‬
ً‫الفرع‬‫نجد‬‫أنه‬‫من‬‫الضروري‬‫عادة‬‫حفظ‬‫محتوٌات‬‫المسجالت‬‫الرئٌسٌة‬‫أو‬‫بعض‬
‫بارامترات‬‫البرنامج‬ً‫الرئٌس‬‫هذه‬‫القٌم‬‫ٌتم‬‫حفظها‬‫بواسطة‬‫دفعها‬‫إلى‬‫المكدس‬.‫و‬
‫بهذه‬‫الطرٌقة‬‫ٌتم‬‫حفظ‬‫المحتوٌات‬‫سلٌمة‬ً‫ف‬‫مقطع‬‫المكدس‬‫للذاكرة‬‫أثناء‬‫تنفٌذ‬
‫البرنامج‬،ً‫الفرع‬‫و‬‫قبل‬‫العودة‬‫إلى‬‫البرنامج‬ً‫الرئٌس‬‫فإن‬‫المسجالت‬‫المحفوظة‬‫و‬
‫بارامترات‬‫البرنامج‬ً‫الرئٌس‬‫ُعاد‬ٌ‫تخزٌنها‬‫بواسطة‬‫سحب‬‫القٌم‬‫المحفوظة‬‫من‬
‫المكدس‬.‫لذلك‬‫فإن‬‫البنٌة‬‫النموذجٌة‬‫لل‬‫برنامج‬ً‫الفرع‬‫تكون‬ً‫كالتال‬:
PUSH xx
PUSH yy‫لحفظ‬‫المسجالت‬‫و‬‫البارامترات‬ً‫ف‬‫المكدس‬
PUSH zz
-----------‫جسم‬‫البرنامج‬ً‫الفرع‬
POP zz
‫نالحظ‬‫أنه‬‫ٌتم‬‫السترجاع‬‫هنا‬‫بشكل‬POP yy‫لسترجاع‬‫المسجالت‬‫و‬
‫البارامترات‬‫من‬‫المكدس‬
ً‫عكس‬‫و‬‫ذلك‬‫ألن‬‫مبدأ‬‫عمل‬‫المكدس‬
POP xx
‫هو‬LIFORET‫للعودة‬‫إلى‬‫البرنامج‬ً‫المستدع‬
‫مالحظة‬:‫ٌتعامل‬‫المكدس‬‫مع‬‫كلمات‬‫و‬‫لٌس‬‫مع‬‫باٌتات‬.
‫تعلٌمات‬PUSH, POP
‫و‬ً‫ه‬‫مشروحة‬ً‫ف‬‫الجدول‬ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬S → ((SP))PUSH S‫دفع‬‫كلمة‬‫إلى‬‫المكدس‬PUSH
‫ل‬‫ٌوجد‬((SP)) → DPOP D‫سحب‬‫كلمة‬‫من‬‫المكدس‬POP
،‫المكدس‬‫مسجل‬‫مقطع‬‫المكدس‬SS‫،مإشر‬‫المكدس‬SP
‫أثناء‬‫عملٌات‬‫المقاطعة‬‫ومناداة‬‫البرنامج‬ً‫الفرع‬‫ٌتم‬‫دفع‬‫محتوٌات‬‫المسجالت‬
‫الداخلٌة‬‫ٌّنة‬‫ع‬‫الم‬‫بالمعالج‬‫إلى‬‫قسم‬‫من‬‫الذاكرة‬‫ٌدعى‬‫بالمكدس‬‫حٌث‬‫تبقى‬‫هذه‬
‫المحتوٌات‬‫هناك‬‫بشكل‬‫مإقت‬.‫و‬‫عند‬‫إكمال‬‫روتٌن‬‫خدمة‬‫المقاطعة‬‫أو‬‫البرنامج‬
ً‫الفرع‬‫ٌتم‬‫سحب‬‫هذه‬‫القٌم‬‫من‬‫المكدس‬‫وتوضع‬ً‫ف‬‫نفس‬‫المسجل‬ً‫الداخل‬‫حٌث‬
‫كان‬‫ٌحتوها‬‫ا‬‫ال‬‫أص‬.‫ا‬‫ال‬‫فمث‬‫عندما‬‫تحدث‬‫المقاطعة‬‫فإن‬‫المعالج‬‫و‬‫بشكل‬ً‫أوتوماتٌك‬
‫ٌدفع‬‫بمسجل‬،‫األعالم‬‫القٌمة‬‫الحالٌة‬ً‫ف‬CS،‫و‬‫القٌمة‬‫الحالٌة‬ً‫ف‬IP‫إلى‬‫ال‬‫مكدس‬.
‫ٌمكن‬‫الحصول‬‫على‬‫مقطع‬‫مكدس‬‫جدٌد‬‫ببساطة‬‫بعنونة‬SS‫ا‬‫ا‬ٌ‫برمج‬‫من‬‫جدٌد‬.‫و‬‫إن‬
‫مإشر‬‫المكدس‬SP‫ٌحتوي‬‫على‬‫العنوان‬‫الفعال‬‫نسبة‬‫للقٌمة‬ً‫ف‬SS.‫و‬‫العنوان‬
‫المشتق‬‫من‬‫محتوٌات‬SS‫و‬SP‫هو‬‫العنوان‬ً‫الفٌزٌائ‬‫لحجرة‬‫التخزٌن‬‫األخٌرة‬ً‫ف‬
‫المكدس‬(‫قمة‬‫المكدس‬)ً‫الت‬‫تم‬‫دفع‬‫المع‬‫طٌات‬‫إلٌها‬.‫إن‬‫القٌمة‬ً‫ف‬‫مإشر‬‫المكدس‬
‫تبدأ‬‫بـ‬FFFFh‫عند‬‫بدء‬‫تشغٌل‬‫المعالج‬.‫و‬‫إن‬‫جمع‬‫هذه‬‫القٌمة‬‫مع‬‫القٌمة‬‫الحالٌة‬
‫الموجودة‬ً‫ف‬SSً‫ٌعط‬‫الحجرة‬‫ذات‬‫العنوان‬‫العلوي‬ً‫ف‬‫المكدس‬(‫قاعدة‬‫المكدس‬.)
‫بما‬‫أن‬‫المعطٌات‬‫المنقولة‬‫من‬‫و‬‫إلى‬‫المكدس‬‫عادة‬ً‫ه‬‫كلمات‬‫فإننا‬‫نتصور‬‫المكد‬‫س‬
‫على‬‫شكل‬‫حجرات‬‫ذات‬8،‫باٌت‬‫كما‬‫أنه‬‫من‬‫الضروري‬‫أن‬‫تكون‬‫جمٌع‬‫حجرات‬
‫المكدس‬ً‫ف‬‫حدود‬‫الكلمات‬‫الزوجٌة‬‫و‬‫ذلك‬‫إلنقاص‬‫عدد‬‫دورات‬‫الذاكرة‬‫المطلوبة‬
‫لدفع‬‫أو‬‫سحب‬‫المعطٌات‬‫من‬‫المكدس‬.‫ٌقوم‬‫المعالج‬‫بدفع‬‫المعطٌات‬‫و‬‫العناوٌن‬‫إلى‬
‫المكدس‬‫كلمة‬ً‫ف‬‫كل‬،‫مرة‬‫و‬ً‫ف‬‫كل‬‫مرة‬‫ٌتم‬‫دفع‬ٌ‫ق‬‫مة‬‫مسجل‬‫ما‬‫إلى‬‫قمة‬‫المكدس‬
‫فإن‬‫القٌمة‬ً‫ف‬‫مإشر‬‫المكدس‬‫ا‬‫ل‬‫أو‬‫تنقص‬‫بمقدار‬8‫و‬‫من‬‫ثم‬‫كتب‬ُ‫ت‬‫محتوٌات‬‫ذلك‬
‫المسجل‬ً‫ف‬‫ذاكرة‬‫المكدس‬.‫بهذه‬‫الطرٌقة‬‫فإن‬‫المكدس‬‫ٌنمو‬‫نحو‬‫األسفل‬ً‫ف‬‫الذاكرة‬
‫ا‬‫ا‬‫انطالق‬‫من‬‫قاعدة‬‫المكدس‬ً‫الت‬‫تطابق‬‫العنوان‬ً‫الفٌزٌائ‬‫المشتق‬‫من‬SS‫و‬‫القٌمة‬
FFFFh‫إ‬‫لى‬‫نهاٌة‬(‫قمة‬)‫المكدس‬‫و‬ً‫الت‬‫تطابق‬‫العنوان‬ً‫الفٌزٌائ‬‫المشتق‬‫مت‬SS‫و‬
‫العنوان‬‫الفعال‬8888h‫و‬‫عندما‬‫تسحب‬‫القٌمة‬‫من‬‫قمة‬‫المكدس‬‫فإن‬‫العكس‬‫لهذا‬
‫التسلسل‬‫ٌحدث‬.‫إن‬‫العنوان‬ً‫الفٌزٌائ‬‫المعرف‬‫بواسطة‬SS‫و‬SP‫ا‬‫ا‬‫دائم‬‫ٌشٌر‬‫إلى‬
‫حجرة‬‫القٌمة‬‫األخٌرة‬‫المدفوعة‬‫إلى‬‫المكدس‬‫حٌث‬‫أ‬‫ن‬‫محتوٌاتها‬‫تسحب‬‫ا‬‫ل‬‫أو‬‫من‬
‫المكدس‬‫إلى‬‫المسجل‬ً‫المعن‬‫ضمن‬‫المعالج‬‫ثم‬‫ٌزداد‬SP‫بمقدار‬8.‫إن‬‫قمة‬‫المكدس‬
‫الجدٌدة‬‫تطابق‬‫القٌمة‬‫السابقة‬‫المدفوعة‬‫إلى‬‫المكدس‬.
‫مثال‬:‫تبٌن‬‫األشكال‬‫الثالثة‬‫التالٌة‬‫حالت‬‫المكدس‬:
‫نالحظ‬‫أن‬‫مسجل‬‫مقطع‬‫المكدس‬‫ٌحوي‬‫على‬8185h‫و‬‫كما‬‫أشرنا‬‫ا‬‫ا‬‫سابق‬‫فإن‬‫قاعدة‬
‫المكدس‬‫تكمن‬ً‫ف‬‫العنوان‬ً‫الفٌزٌائ‬‫المشتق‬‫من‬SS‫مع‬‫العنوان‬‫الفعال‬FFFFh‫و‬
‫هذا‬ً‫ٌعط‬‫عنوان‬‫قاعدة‬‫المكدس‬BOS:
A (bos) = 0105h + FFFF = 1104Fh
‫باإلضافة‬‫إلى‬‫ذلك‬‫فإن‬‫مإشر‬‫المكدس‬‫الذي‬‫ٌمثل‬‫العنوان‬‫الفعال‬‫من‬‫قاعدة‬‫المكدس‬
‫إلى‬‫قمته‬‫ٌساوي‬8880h‫لذلك‬‫فالقمة‬‫الحالٌة‬‫للمكدس‬ً‫ه‬ً‫ف‬‫العنوان‬ً‫الفٌزٌائ‬:
A (tos) = 01050 + 0008 = 01058h
‫إن‬‫العناوٌن‬‫ذات‬‫القٌم‬‫األع‬‫لى‬‫من‬‫قمة‬‫المكدس‬81850h‫تحتوي‬‫على‬‫معطٌات‬
‫حقٌقٌة‬‫للمكدس‬‫بٌنما‬‫المعطٌات‬‫ذات‬‫العناوٌن‬‫األدنى‬‫من‬‫قمة‬‫المكدس‬‫لٌست‬‫معطٌات‬
‫حقٌقٌة‬‫للمكدس‬(‫بالتعرٌف‬:‫المكدس‬‫هو‬‫القٌم‬‫المحصورة‬‫بٌن‬‫القاعدة‬‫و‬‫القمة‬. )
‫نالحظ‬‫أن‬‫القٌمة‬‫األخٌرة‬‫المدفوعة‬‫إلى‬‫المكدس‬ً‫ف‬‫الشكل‬‫األول‬‫من‬‫ال‬‫شكل‬‫السابق‬
ً‫ه‬BBAAh.‫و‬‫ٌبٌن‬‫الشكل‬ً‫الثان‬‫ما‬‫الذي‬‫ٌحدث‬‫عند‬‫تنفٌذ‬‫تعلٌمة‬PUSH AX.
‫هنا‬‫نجد‬‫أن‬‫محتوٌات‬AXً‫ه‬1834h‫و‬‫أن‬‫تنفٌذ‬‫تعلٌمة‬PUSH‫ٌسبب‬‫إنقاص‬
‫محتوٌات‬SP‫بمقدار‬8‫و‬‫لكنها‬‫ل‬‫تإثر‬‫على‬‫محتوٌات‬‫مسجل‬‫مقطع‬‫المكدس‬SS
‫لذلك‬‫فإن‬‫الحجرة‬‫التالٌة‬ً‫الت‬‫ٌتم‬‫الوصول‬‫إلٌها‬ً‫ف‬‫المكدس‬‫تقابل‬‫العنوان‬81856h
.‫إلى‬‫هذه‬‫الحجرة‬‫ٌتم‬‫دفع‬‫القٌمة‬‫المخزنة‬ً‫ف‬AX‫إلى‬‫المكدس‬.‫نالحظ‬‫أن‬‫الباٌت‬
‫العلوي‬‫من‬‫المسجل‬AX(‫و‬‫الذي‬‫قٌمته‬‫تساوي‬18h)‫ٌكمن‬‫اآلن‬ً‫ف‬‫الباٌت‬ً‫السفل‬
‫للكلمة‬ً‫ف‬‫المكدس‬‫و‬‫كذلك‬‫فالباٌت‬ً‫السفل‬‫من‬‫المسجل‬AX(‫و‬‫الذي‬‫قٌمته‬‫تسا‬‫وي‬
34h)‫ٌكمن‬‫اآلن‬ً‫ف‬‫الباٌت‬‫العلوي‬‫للكلمة‬ً‫ف‬‫المكدس‬.
‫ٌبٌن‬‫الشكل‬‫الثالث‬‫ما‬‫الذي‬‫ٌحدث‬‫عندما‬‫سحب‬ُ‫ت‬‫المعطٌات‬‫من‬‫المكدس‬‫إلى‬‫المسجل‬
‫الذي‬‫ت‬َ‫ع‬‫ف‬ُ‫د‬‫المعطٌات‬‫منه‬‫إلى‬‫المكدس‬‫و‬‫ذلك‬‫بعد‬‫تنفٌذ‬‫التعلٌمة‬POP AX‫ثم‬POP
BX‫على‬‫الترتٌب‬.‫نفس‬‫المناقشة‬‫بالنسبة‬‫إلى‬‫دفع‬‫قٌمة‬ٌ‫فور‬‫ة‬‫إلى‬‫المكدس‬.
‫ا‬‫ا‬‫عاشر‬-‫تعلٌمات‬‫الحلقات‬
‫هناك‬‫ثالث‬‫تعلٌمات‬‫مصممة‬‫بشكل‬‫خاص‬‫لتحقٌق‬‫عملٌة‬‫الحلقة‬.‫و‬‫هذه‬‫التعلٌمات‬
‫ٌمكن‬‫استعمالها‬‫ا‬‫ل‬‫بد‬‫من‬‫تعلٌمات‬‫القفز‬ً‫الشرط‬.‫و‬ً‫ه‬‫مبٌنة‬ً‫ف‬‫الجدول‬ً‫التال‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬
LOOP short_label‫حلقة‬LOOP
‫إنقاص‬CX‫بمقدار‬‫واحد‬‫دون‬‫التؤثٌر‬‫على‬‫األعالم‬‫ثم‬‫القفز‬‫إلى‬
‫الحجرة‬‫فة‬‫المعر‬‫بواسطة‬‫الالفتة‬‫القصٌرة‬‫إذا‬‫كان‬CX‫ل‬‫ٌساوي‬‫الصفر‬‫و‬‫إل‬‫ٌتم‬
‫تنفٌذ‬‫التعلٌمة‬‫التالٌة‬‫لتعلٌمة‬‫الحلقة‬.‫و‬‫هنا‬‫ٌكون‬IP = IP + disp‫حٌث‬disp‫أخذناها‬
‫بعد‬‫تمد‬‫ٌد‬‫إشارتها‬(‫أي‬‫جعلها‬‫بـ‬16‫بت‬.)
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬
LOOPE/
LOOPZ‫حلقة‬‫طالما‬‫ٌساوي‬/‫أو‬‫طالما‬‫صفر‬LOOPE/ LOOPZ
‫إنقاص‬CX‫بمقدار‬‫واحد‬‫دون‬‫التؤثٌر‬‫على‬‫األعالم‬‫ثم‬‫القفز‬‫إلى‬
‫الحجرة‬‫فة‬‫المعر‬‫بواسطة‬‫الالفت‬‫ة‬‫القصٌرة‬‫إذا‬‫كان‬CX‫ل‬‫ٌساوي‬‫الصفر‬‫و‬ZF
‫ٌساوي‬‫الصفر‬‫و‬‫إل‬‫ٌتم‬‫تنفٌذ‬‫التعلٌمة‬‫التالٌة‬‫لتعلٌمة‬‫الحلقة‬.
‫و‬‫هنا‬‫جسم‬‫الحلقة‬‫فقط‬‫هو‬‫الذي‬‫ٌإثر‬‫على‬‫األعالم‬.
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬
LOOPNE/
LOOPNZ‫حلقة‬‫طالما‬‫ل‬‫ٌساوي‬/‫أو‬‫طال‬‫ما‬‫لٌس‬‫ا‬‫ا‬‫صفر‬LOOPNE/ LOOPNZ
‫إنقاص‬CX‫بمقدار‬‫واحد‬‫ثم‬‫القفز‬‫إلى‬‫الحجرة‬‫المحددة‬‫بواسطة‬‫الالفتة‬
‫القصٌرة‬‫إذا‬‫كان‬CX‫ل‬‫ٌساوي‬‫الصفر‬‫و‬ZF‫ٌساوي‬‫الصفر‬‫و‬‫إل‬‫ٌتم‬‫تنفٌذ‬‫التعلٌمة‬
‫التالٌة‬‫لتعلٌمة‬‫الحلقة‬.
‫و‬‫هنا‬‫ا‬‫ا‬‫أٌض‬‫جسم‬‫الحلقة‬‫فقط‬‫هو‬‫الذي‬‫ٌإثر‬‫على‬‫األعالم‬.
‫م‬‫ثال‬:
‫نرٌد‬‫البحث‬‫عن‬‫عنصر‬‫ضمن‬‫متجهة‬‫من‬‫العناصر‬(‫مصفوفة‬‫أحادٌة‬‫البعد‬)‫ا‬‫ال‬‫مث‬:
0,9,4,5,1‫و‬‫العنصر‬‫المراد‬‫إٌجاده‬‫هو‬4.‫هنا‬CX = 5‫و‬‫هو‬‫عدد‬‫العناصر‬.‫و‬
‫ٌكون‬‫جسم‬‫الحلقة‬ً‫كالتال‬:
MOV CX, 5
Nxt:---------------
---------------
---------------
LOOPNE Nxt
11-‫تعلٌمات‬‫السلسلة‬
‫نقصد‬‫بكلمة‬‫السلسلة‬‫أن‬‫باٌتات‬‫أو‬‫كلمات‬‫معطٌات‬‫تكمن‬ً‫ف‬‫حجرات‬‫متعاقبة‬
‫للذاكرة‬.‫إن‬‫تعلٌمات‬‫السلسلة‬‫تسمح‬‫للمبرمج‬‫بتنفٌذ‬‫عملٌات‬‫مثل‬‫نقل‬‫المعطٌات‬‫من‬
‫بلوك‬‫ذاكرة‬‫إلى‬‫بلوك‬‫آخر‬ً‫ف‬،‫الذاكرة‬‫مسح‬‫أو‬‫كنس‬SCAN‫سلسلة‬‫من‬‫عناصر‬
‫المعطٌات‬‫المخزنة‬ً‫ف‬‫الذاكرة‬‫و‬‫ا‬‫لبحث‬‫عن‬‫قٌمة‬،‫معٌنة‬‫مقارنة‬‫عناصر‬‫سلسلتٌن‬
‫لتحدٌد‬‫فٌما‬‫إذا‬‫كانا‬‫متطابقتٌن‬‫أو‬‫مختلفتٌن‬.
‫و‬‫تعلٌمات‬‫السلسلة‬‫األساسٌة‬ً‫ه‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬MOVS operand‫نقل‬‫عنصر‬‫من‬‫سلسلة‬MOVS
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫الم‬‫عنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬‫نفس‬‫العملٌة‬‫السابقة‬‫و‬‫مقدار‬‫التزاٌد‬‫هو‬1MOVSB‫نقل‬‫عنصر‬
‫باٌت‬‫من‬‫سلسلة‬MOVSB
‫ل‬‫ٌوجد‬‫نفس‬‫العملٌة‬‫السابقة‬‫و‬‫مقدار‬‫التزاٌد‬‫هو‬8MOVSW‫نقل‬‫عنصر‬
‫كلمة‬‫من‬‫السلسلة‬MOVSW
‫أعالم‬‫الحالة‬CMPS operand‫مقارنة‬‫عنصر‬‫سلسلة‬CMPS
‫ا‬‫ألعالم‬‫ا‬‫لمتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫أعالم‬‫الحالة‬SCAS operand‫مسح‬‫عنصر‬‫سلسلة‬SCAS(B or W)
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬
LODS operand‫تحمٌل‬‫عنصر‬‫سلسلة‬LODS (B or W)
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعن‬‫ى‬‫الكلمة‬‫المختزلة‬
‫ل‬‫ٌوجد‬
STOS operand‫تخزٌن‬‫عنصر‬‫سلسلة‬STOS(B or W)
12-‫تعلٌمات‬‫تكرار‬‫السلسلة‬
ً‫ف‬‫معظم‬‫التطبٌقات‬‫ٌجب‬‫تكرار‬‫العملٌات‬‫األساسٌة‬‫للسلسلة‬‫من‬‫أجل‬‫معالجة‬‫جمٌع‬
‫عناصرها‬.‫و‬‫ٌتم‬‫إنجاز‬‫هذا‬‫العمل‬‫بواسطة‬‫إدخال‬‫تعلٌمات‬‫التكرار‬‫قبل‬‫التعلٌمة‬
‫األساسٌة‬‫للسلسلة‬ً‫الت‬‫سوف‬‫كرر‬ُ‫ت‬.‫هذا‬‫و‬‫إن‬‫أنواع‬‫تعلٌمات‬‫التكرار‬‫مبٌنة‬ً‫ف‬
‫الجدول‬ً‫التال‬:
‫الستخدام‬‫المعنى‬‫الكلمة‬‫المختزلة‬
MOVS, STOS‫التكرار‬‫طالما‬‫لم‬‫نصل‬‫إلى‬‫نهاٌة‬‫السلسلة‬‫أي‬
CX ≠ 0REP
CMPS, SCAS‫التكرار‬‫طالما‬‫لم‬‫نصل‬‫إلى‬‫نهاٌة‬‫السلسلة‬‫و‬‫السلسلتان‬
‫متساوٌتان‬‫أي‬ZF=1, CX≠0REPE/REPZ
CMPS, SCAS‫التكرار‬‫طالما‬‫لم‬‫نصل‬‫إلى‬‫نهاٌة‬‫السلسلة‬‫و‬‫السلسلتان‬‫غٌر‬
‫متساوٌتان‬‫أي‬ZF=0, CX≠0REPNE/REPNZ
‫مثال‬:
‫بفرض‬‫أن‬:
SI = 0100hDS = 0200h
DI = 0110hES = 0400h
‫فإن‬‫نتٌجة‬‫تنفٌذ‬‫التعلٌمتٌن‬‫التالٌتٌن‬:
MOV CX,20h
REP MOVSB
ً‫ه‬‫أن‬ٌ‫التعل‬‫مة‬‫األولى‬‫تقوم‬‫بتحمٌل‬‫المسجل‬CX‫بالقٌمة‬88h = 32d‫أما‬‫التعلٌمة‬
‫الثانٌة‬‫فتنقل‬38‫باٌت‬‫من‬‫حجرات‬‫ذاكرة‬‫المصدر‬‫المحددة‬‫بواسطة‬DS‫و‬SI‫إلى‬
‫بلوك‬‫حجرات‬‫ذاكرة‬‫الهدف‬‫المحددة‬‫بواسطة‬ES‫و‬DI.
13-‫تعلٌمتا‬‫مسح‬‫و‬‫توضٌع‬‫علم‬‫التجاه‬
‫ذكرنا‬‫أنه‬‫ٌتم‬‫زٌادة‬‫أو‬‫إنقاص‬‫قٌم‬SI‫و‬DI‫بشكل‬ً‫أوتوماتٌك‬‫أثناء‬‫تنفٌذ‬‫تعلٌمات‬
‫السلسلة‬‫و‬‫أنه‬‫ٌتم‬‫تقرٌر‬‫الزٌادة‬‫أو‬‫اإلنقاص‬‫ا‬‫ا‬‫اعتماد‬‫على‬‫قٌمة‬‫علم‬‫التجاه‬DF‫حٌث‬
‫عندما‬DF = 0‫تحدث‬‫الزٌادة‬‫األوتوماتٌكٌة‬‫و‬‫العكس‬‫بالعكس‬.‫و‬‫ٌتم‬‫التحكم‬‫بعلم‬
‫التجاه‬‫بواسطة‬‫التعلٌمتٌن‬‫التالٌتٌن‬:
‫األعالم‬‫المتؤثرة‬‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
DF8→DFCLD‫تنظٌف‬DFCLD
DF1→DFSTD‫توضٌع‬DESTD
14-‫تعلٌمتا‬IN‫و‬OUT
‫العملٌة‬‫الصٌغة‬‫المعنى‬‫الكلمة‬‫المختزلة‬
(port) → AccIN Acc,port‫تعلٌمة‬‫دخل‬‫مباشرة‬IN
((DX)) → AccIN Acc,DX‫تعلٌمة‬‫دخل‬‫غٌر‬‫مباشرة‬IN
Acc → (port)OUT port,Acc‫تعلٌمة‬‫خرج‬‫مباشرة‬OUT
Acc → ((DX))OUT DX,Acc‫تعلٌمة‬‫خرج‬‫غٌر‬‫مباشرة‬OUT
‫حٌث‬ً‫ف‬‫التعلٌمة‬‫المباشرة‬‫ٌكون‬‫طول‬‫الـ‬port‫ا‬‫ا‬‫باٌت‬‫ا‬‫ا‬‫واحد‬‫و‬ً‫ف‬‫التعلٌمة‬‫غٌر‬
‫المباشرة‬‫ٌكون‬DX‫ا‬‫ا‬ٌ‫محتو‬‫على‬‫عنوان‬‫نافذة‬.
‫مثال‬:
‫بفرض‬‫أن‬ً‫نافذت‬‫دخل‬‫بحجم‬‫باٌت‬ً‫ف‬‫العناوٌن‬AAh, A9h‫ع‬‫لى‬‫الترتٌب‬‫قرأ‬ُ‫ت‬َ‫س‬‫و‬
‫من‬‫ثم‬‫سٌتم‬‫إخراج‬‫محتوٌاتها‬‫إلى‬‫نافذة‬‫خرج‬‫بحجم‬‫كلمة‬ً‫ف‬‫العنوان‬B000h
‫المطلوب‬‫كتابة‬‫التعلٌمات‬‫الالزمة‬‫إلنجاز‬‫هذا‬‫العمل‬.
‫الحل‬:
IN AL,[0AAh]
MOV AH,AL
IN AL,[0A9h]
MOV DX,0B000h
OUT DX,AX
‫أسمبيلي‬‫للمبتدئين‬
‫العامري‬ ‫طالب‬ ‫مشتاق‬ :‫المبرمج‬ ‫أعداد‬
‫للمبتدئٌن‬ ً‫األسٌمبل‬ ‫لغة‬
MUSHTAQ_TALIB58@YAHOO.COM
1/1/2009

More Related Content

What's hot

PSR czyli dobre praktyki programistyczne
PSR czyli dobre praktyki programistycznePSR czyli dobre praktyki programistyczne
PSR czyli dobre praktyki programistycznePHPstokPHPstok
 
اختبار كفايات حاسب آلي للمعلمين
اختبار كفايات حاسب آلي للمعلميناختبار كفايات حاسب آلي للمعلمين
اختبار كفايات حاسب آلي للمعلمينMohammad Alfatayri
 
QWeb Report in odoo
QWeb Report in odooQWeb Report in odoo
QWeb Report in odooexpertodoo
 
رياضيات سادس علمي
رياضيات سادس علميرياضيات سادس علمي
رياضيات سادس علميAhmed Mahdi
 
OpenModelica tutorials_2 coding (超初級チュートリアル 2.コーディング)
OpenModelica tutorials_2 coding (超初級チュートリアル 2.コーディング)OpenModelica tutorials_2 coding (超初級チュートリアル 2.コーディング)
OpenModelica tutorials_2 coding (超初級チュートリアル 2.コーディング)Shigenori Ueda
 
software engineering هندسة البرمجيات
software engineering هندسة البرمجياتsoftware engineering هندسة البرمجيات
software engineering هندسة البرمجياتHacen Dadda
 

What's hot (10)

PSR czyli dobre praktyki programistyczne
PSR czyli dobre praktyki programistycznePSR czyli dobre praktyki programistyczne
PSR czyli dobre praktyki programistyczne
 
اختبار كفايات حاسب آلي للمعلمين
اختبار كفايات حاسب آلي للمعلميناختبار كفايات حاسب آلي للمعلمين
اختبار كفايات حاسب آلي للمعلمين
 
Bootstrap ppt
Bootstrap pptBootstrap ppt
Bootstrap ppt
 
QWeb Report in odoo
QWeb Report in odooQWeb Report in odoo
QWeb Report in odoo
 
تحليل النظم
تحليل النظمتحليل النظم
تحليل النظم
 
رياضيات سادس علمي
رياضيات سادس علميرياضيات سادس علمي
رياضيات سادس علمي
 
computer exam2
computer exam2computer exam2
computer exam2
 
OpenModelica tutorials_2 coding (超初級チュートリアル 2.コーディング)
OpenModelica tutorials_2 coding (超初級チュートリアル 2.コーディング)OpenModelica tutorials_2 coding (超初級チュートリアル 2.コーディング)
OpenModelica tutorials_2 coding (超初級チュートリアル 2.コーディング)
 
software engineering هندسة البرمجيات
software engineering هندسة البرمجياتsoftware engineering هندسة البرمجيات
software engineering هندسة البرمجيات
 
Custom View
Custom ViewCustom View
Custom View
 

Viewers also liked

محاسبة المنشآت المالية - اللقاء الافتراضي الثاني
محاسبة المنشآت المالية - اللقاء الافتراضي الثانيمحاسبة المنشآت المالية - اللقاء الافتراضي الثاني
محاسبة المنشآت المالية - اللقاء الافتراضي الثانيجامعة القدس المفتوحة
 
برمجات متحكمات بلغة السي
برمجات متحكمات بلغة السي برمجات متحكمات بلغة السي
برمجات متحكمات بلغة السي tahsal99
 
كتاب: Simply AVR مقدمة مبسطة عن النظم المدمجة
كتاب: Simply AVR مقدمة مبسطة عن النظم المدمجةكتاب: Simply AVR مقدمة مبسطة عن النظم المدمجة
كتاب: Simply AVR مقدمة مبسطة عن النظم المدمجةجامعة القدس المفتوحة
 

Viewers also liked (19)

جميع اوامر لغة الاسمبلي
جميع اوامر لغة الاسمبلي جميع اوامر لغة الاسمبلي
جميع اوامر لغة الاسمبلي
 
الشامل فى لغة الاسمبلى
الشامل فى لغة الاسمبلىالشامل فى لغة الاسمبلى
الشامل فى لغة الاسمبلى
 
كتاب ميكروبيديا Micropedia
كتاب ميكروبيديا Micropediaكتاب ميكروبيديا Micropedia
كتاب ميكروبيديا Micropedia
 
مرجع في البرمجة بلغة الاسمبلي
مرجع في البرمجة بلغة الاسمبليمرجع في البرمجة بلغة الاسمبلي
مرجع في البرمجة بلغة الاسمبلي
 
ملخص ادارة مخاطر الائتمان
ملخص ادارة مخاطر الائتمانملخص ادارة مخاطر الائتمان
ملخص ادارة مخاطر الائتمان
 
محاسبة المنشآت المالية - اللقاء الافتراضي الثاني
محاسبة المنشآت المالية - اللقاء الافتراضي الثانيمحاسبة المنشآت المالية - اللقاء الافتراضي الثاني
محاسبة المنشآت المالية - اللقاء الافتراضي الثاني
 
ملخص اللغة العربية 1
ملخص اللغة العربية 1ملخص اللغة العربية 1
ملخص اللغة العربية 1
 
ملخص السلوك التنظيمي
ملخص السلوك التنظيميملخص السلوك التنظيمي
ملخص السلوك التنظيمي
 
ملخص تعايش مع التكنولوجيا
ملخص تعايش مع التكنولوجياملخص تعايش مع التكنولوجيا
ملخص تعايش مع التكنولوجيا
 
ملخص 20th century American lit
ملخص 20th century American litملخص 20th century American lit
ملخص 20th century American lit
 
ملخص م. الاحصاء
ملخص م. الاحصاءملخص م. الاحصاء
ملخص م. الاحصاء
 
برمجات متحكمات بلغة السي
برمجات متحكمات بلغة السي برمجات متحكمات بلغة السي
برمجات متحكمات بلغة السي
 
الفصل3 طريقة سمبلكس
الفصل3 طريقة سمبلكسالفصل3 طريقة سمبلكس
الفصل3 طريقة سمبلكس
 
كتاب: Simply AVR مقدمة مبسطة عن النظم المدمجة
كتاب: Simply AVR مقدمة مبسطة عن النظم المدمجةكتاب: Simply AVR مقدمة مبسطة عن النظم المدمجة
كتاب: Simply AVR مقدمة مبسطة عن النظم المدمجة
 
ملخص تحليل الانظمة وتصميمها - النصفي
ملخص تحليل الانظمة وتصميمها - النصفيملخص تحليل الانظمة وتصميمها - النصفي
ملخص تحليل الانظمة وتصميمها - النصفي
 
ملخص مناهج البحث العلمي
ملخص مناهج البحث العلميملخص مناهج البحث العلمي
ملخص مناهج البحث العلمي
 
ملخص السلوك التنظيمي
ملخص السلوك التنظيميملخص السلوك التنظيمي
ملخص السلوك التنظيمي
 
Accounting theory نظرية المحاسبية
Accounting theory   نظرية المحاسبيةAccounting theory   نظرية المحاسبية
Accounting theory نظرية المحاسبية
 
ملخص مناهج البحث العلمي كامل
ملخص مناهج البحث العلمي كاململخص مناهج البحث العلمي كامل
ملخص مناهج البحث العلمي كامل
 

More from جامعة القدس المفتوحة

ملخص تحليل الانظمة وتصميمها - الوحدة السادسة
ملخص تحليل الانظمة وتصميمها - الوحدة السادسةملخص تحليل الانظمة وتصميمها - الوحدة السادسة
ملخص تحليل الانظمة وتصميمها - الوحدة السادسةجامعة القدس المفتوحة
 
ملخص تحليل الانظمة وتصميمها - الوحدة الخامسة
ملخص تحليل الانظمة وتصميمها - الوحدة الخامسةملخص تحليل الانظمة وتصميمها - الوحدة الخامسة
ملخص تحليل الانظمة وتصميمها - الوحدة الخامسةجامعة القدس المفتوحة
 
ملخص تحليل الانظمة وتصميمها - الوحدة الثالثة
ملخص تحليل الانظمة وتصميمها - الوحدة الثالثةملخص تحليل الانظمة وتصميمها - الوحدة الثالثة
ملخص تحليل الانظمة وتصميمها - الوحدة الثالثةجامعة القدس المفتوحة
 
ملخص تحليل الانظمة وتصميمها - الوحدة الثامنة
ملخص تحليل الانظمة وتصميمها - الوحدة الثامنةملخص تحليل الانظمة وتصميمها - الوحدة الثامنة
ملخص تحليل الانظمة وتصميمها - الوحدة الثامنةجامعة القدس المفتوحة
 
ملخص تحليل الانظمة وتصميمها - الوحدة السابعة
ملخص تحليل الانظمة وتصميمها - الوحدة السابعةملخص تحليل الانظمة وتصميمها - الوحدة السابعة
ملخص تحليل الانظمة وتصميمها - الوحدة السابعةجامعة القدس المفتوحة
 
ملخص تحليل الانظمة وتصميمها - الوحدة الرابعة
ملخص تحليل الانظمة وتصميمها - الوحدة الرابعةملخص تحليل الانظمة وتصميمها - الوحدة الرابعة
ملخص تحليل الانظمة وتصميمها - الوحدة الرابعةجامعة القدس المفتوحة
 
ملخص تحليل الانظمة وتصميمها - الوحدة التاسعة
ملخص تحليل الانظمة وتصميمها - الوحدة التاسعةملخص تحليل الانظمة وتصميمها - الوحدة التاسعة
ملخص تحليل الانظمة وتصميمها - الوحدة التاسعةجامعة القدس المفتوحة
 
ملخص تحليل الانظمة وتصميمها - الوحدة الثانية
ملخص تحليل الانظمة وتصميمها - الوحدة الثانيةملخص تحليل الانظمة وتصميمها - الوحدة الثانية
ملخص تحليل الانظمة وتصميمها - الوحدة الثانيةجامعة القدس المفتوحة
 
ملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسةملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسةجامعة القدس المفتوحة
 
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةجامعة القدس المفتوحة
 
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266جامعة القدس المفتوحة
 
مناهج البحث العلمي - اللقاء الافتراضي الثاني
مناهج البحث العلمي - اللقاء الافتراضي الثانيمناهج البحث العلمي - اللقاء الافتراضي الثاني
مناهج البحث العلمي - اللقاء الافتراضي الثانيجامعة القدس المفتوحة
 
مناهج البحث العلمي - اللقاء الافتراضي الاول
مناهج البحث العلمي - اللقاء الافتراضي الاولمناهج البحث العلمي - اللقاء الافتراضي الاول
مناهج البحث العلمي - اللقاء الافتراضي الاولجامعة القدس المفتوحة
 
ملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسةملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسةجامعة القدس المفتوحة
 
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةجامعة القدس المفتوحة
 
ملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسةملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسةجامعة القدس المفتوحة
 
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةجامعة القدس المفتوحة
 
ملخص تقنية تصميم صفحات الويب - الوحدة الرابعة
ملخص تقنية تصميم صفحات الويب - الوحدة الرابعةملخص تقنية تصميم صفحات الويب - الوحدة الرابعة
ملخص تقنية تصميم صفحات الويب - الوحدة الرابعةجامعة القدس المفتوحة
 
ملخص تقنية تصميم صفحات الويب - الوحدة الثالثة (الجزء الثالث)
ملخص تقنية تصميم صفحات الويب - الوحدة الثالثة (الجزء الثالث) ملخص تقنية تصميم صفحات الويب - الوحدة الثالثة (الجزء الثالث)
ملخص تقنية تصميم صفحات الويب - الوحدة الثالثة (الجزء الثالث) جامعة القدس المفتوحة
 

More from جامعة القدس المفتوحة (20)

ملخص تحليل الانظمة وتصميمها - الوحدة السادسة
ملخص تحليل الانظمة وتصميمها - الوحدة السادسةملخص تحليل الانظمة وتصميمها - الوحدة السادسة
ملخص تحليل الانظمة وتصميمها - الوحدة السادسة
 
ملخص تحليل الانظمة وتصميمها - الوحدة الخامسة
ملخص تحليل الانظمة وتصميمها - الوحدة الخامسةملخص تحليل الانظمة وتصميمها - الوحدة الخامسة
ملخص تحليل الانظمة وتصميمها - الوحدة الخامسة
 
ملخص تحليل الانظمة وتصميمها - الوحدة الثالثة
ملخص تحليل الانظمة وتصميمها - الوحدة الثالثةملخص تحليل الانظمة وتصميمها - الوحدة الثالثة
ملخص تحليل الانظمة وتصميمها - الوحدة الثالثة
 
ملخص تحليل الانظمة وتصميمها - الوحدة الثامنة
ملخص تحليل الانظمة وتصميمها - الوحدة الثامنةملخص تحليل الانظمة وتصميمها - الوحدة الثامنة
ملخص تحليل الانظمة وتصميمها - الوحدة الثامنة
 
ملخص تحليل الانظمة وتصميمها - الوحدة السابعة
ملخص تحليل الانظمة وتصميمها - الوحدة السابعةملخص تحليل الانظمة وتصميمها - الوحدة السابعة
ملخص تحليل الانظمة وتصميمها - الوحدة السابعة
 
ملخص تحليل الانظمة وتصميمها - الوحدة الرابعة
ملخص تحليل الانظمة وتصميمها - الوحدة الرابعةملخص تحليل الانظمة وتصميمها - الوحدة الرابعة
ملخص تحليل الانظمة وتصميمها - الوحدة الرابعة
 
ملخص تحليل الانظمة وتصميمها - الوحدة التاسعة
ملخص تحليل الانظمة وتصميمها - الوحدة التاسعةملخص تحليل الانظمة وتصميمها - الوحدة التاسعة
ملخص تحليل الانظمة وتصميمها - الوحدة التاسعة
 
ملخص تحليل الانظمة وتصميمها - الوحدة الثانية
ملخص تحليل الانظمة وتصميمها - الوحدة الثانيةملخص تحليل الانظمة وتصميمها - الوحدة الثانية
ملخص تحليل الانظمة وتصميمها - الوحدة الثانية
 
ملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسةملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسة
 
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
 
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
 
مناهج البحث العلمي - اللقاء الافتراضي الثاني
مناهج البحث العلمي - اللقاء الافتراضي الثانيمناهج البحث العلمي - اللقاء الافتراضي الثاني
مناهج البحث العلمي - اللقاء الافتراضي الثاني
 
مناهج البحث العلمي - شرح الوحدات 1-5
مناهج البحث العلمي - شرح الوحدات 1-5مناهج البحث العلمي - شرح الوحدات 1-5
مناهج البحث العلمي - شرح الوحدات 1-5
 
مناهج البحث العلمي - اللقاء الافتراضي الاول
مناهج البحث العلمي - اللقاء الافتراضي الاولمناهج البحث العلمي - اللقاء الافتراضي الاول
مناهج البحث العلمي - اللقاء الافتراضي الاول
 
ملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسةملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسة
 
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
 
ملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسةملخص تقنية تصميم صفحات الويب - الوحدة السادسة
ملخص تقنية تصميم صفحات الويب - الوحدة السادسة
 
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
 
ملخص تقنية تصميم صفحات الويب - الوحدة الرابعة
ملخص تقنية تصميم صفحات الويب - الوحدة الرابعةملخص تقنية تصميم صفحات الويب - الوحدة الرابعة
ملخص تقنية تصميم صفحات الويب - الوحدة الرابعة
 
ملخص تقنية تصميم صفحات الويب - الوحدة الثالثة (الجزء الثالث)
ملخص تقنية تصميم صفحات الويب - الوحدة الثالثة (الجزء الثالث) ملخص تقنية تصميم صفحات الويب - الوحدة الثالثة (الجزء الثالث)
ملخص تقنية تصميم صفحات الويب - الوحدة الثالثة (الجزء الثالث)
 

أسمبيلي للمبتدئين Assembly