Professional Documents
Culture Documents
العمليات الحسابية والمنطقية في لغة
العمليات الحسابية والمنطقية في لغة
إلى إمام الذاكرين وقدوة السالكين ومعلم المتعلمين صاحب الشفاعة يوم الدين.
إلى النبع الذي ال يميل العطاء ..يامن كان دعائھا نوراَ لي في طريق الوفاء ..وحبھا مأل
األرض والسماء..........أمي الحبيبة
إلي الظل الذي أظل حياتي بنصحه وإرشاده ..إلي من وھبني عمره لينير لي الطريق..إلي من
ھو لي القدوة والمثل...........أبي العزيز
إلي من دمي من دمھم وروحي من روحھم إلي من حبھم يجري في عروقي ...إلي نجوم حياتي
المتألألة دائما ................إخوتي األعزاء
إلي الذين سعدت برفقتھم ..إلى من سطرت معھم على جدار الزمن أجمل الذكريات..إلي من
عرفوا الصداقة بكل معانيھا ................أصدقاء الدراسة .
إلى كل شخص بذل من جھده ووقته وفكره لكي ينشر معلومات أو مواضيع مفيدة على الشبكة
العنكبوتية لكي يستفيد منھا اآلخرين.
ﻣﻘﺪﻣﺔ
بسم الرحمن الرحيم والصالة والسالم على نبينا محمد وعلى اله وصحبه
أجمعين.
أن اصدق الحديث كالم وخير الھدى ھدى محمد صلى علية وسالم
أما بعد:
وأردت أن يكون امتداداً لي بعد مماتي كما قال علية الصالة والسالم :
) إذا مات ابن آدم انقطع عمله إال من ثالث :صدقة جارية ،أو علم ينتفع به ،أو ولد
صالح يدعوا له (.
ولذلك قد أكون ميتا ً أالن وأنت تقرأ ھذه الصفحات ،ولكني حيا ً اآلن معك ،أتحدث
أليك وتستمع لي.
في ھذه الصفحات لن تجد شفرات برمجية للغة االسمبلى ألن الشرح يھتم من
الناحية النظرية .
أسأل أن تكون ھذا الصفحات مفيدة فما كان فيه من صواب فمن وما كان من
Op1=op1+op2
نفرض إن قيمة -:
OP1تمثل الھدف )(Destination
مالحظات مھمه:
:1فى ھذا االمر يتم جمع قيمة المصدر) (OP2وقيمة الھدف )(OP1وتحفظ النتيجة
في الھدف).(OP1
:3بالنسبة للمصدر) (OP2يمكن ان يكون قيمة فورية أو سجل أو موقع فى الذاكرة .
ADD DH,3
الحل :
DH=DH+41
DH=3+41
DH=44H
MOV CL , 8
ADD AL , CL
الحل:
AL= AL+ CL
AL= 6+8
AL=0EH
جدول متابعة:
االمر CL AL
؟؟ ؟؟
مالحظات:
) :1؟؟( تعني اننا ال نعلم ما بداخله.
:2علينا تسجيل القيم في الميزان السادس عشر على شكل منزلتين في المسجالت
ذات 8بت وعلى شكل 4منازل في المسجالت ذات 16بت.
مثال:
DX=1024H AL=06H
الحل:
MOV CL,AL
ADD CL ,CL
ADD CL,BL
(2أمر الطرح SUB
SUB Destination,Source الصيغة العامة لھذا أالمر ھى
مالحظات مھمه:
:1فى ھذا االمر يتم طرح قيمة المصدر) (OP2من قيمة الھدف )(OP1وتحفظ
النتيجة في الھدف).(OP1
:3بالنسبة للمصدر) (OP2يمكن ان يكون قيمة فورية أو سجل أو موقع فى الذاكرة .
MOV CL , 6
SUB AL , CL
الحل
AL= AL – CL
AL= 8 – 6
AL=02H
:جدول متابعة
االمر CL AL
؟؟ ؟؟
*OP1=OP1+OP2+CF
مالحظات مھمه:
:1المقصود في * CFأي قيمة الراية CFالتي كانت قبل عملية الجمع وليست القيمة
الجديدة التي عملتھا عملية الجمع الجديدة.
:2فى ھذا االمر يتم جمع قيمة المصدر) (OP2وقيمة الھدف )(OP1وقيمة سجل
الراية ) (CFوتحفظ النتيجة في الھدف).(OP1
:4بالنسبة للمصدر) (OP2يمكن ان يكون قيمة فورية أو سجل أو موقع فى الذاكرة .
ADD AL,85H
ADC AL,3
جدول متابعة:
االمر AL CF مالحظات
?? ?
مالحظة :ان النتيجة غير منطقية النھا بحاجة الى اكثر من ثمانية بتات
(4الطرح مع راية SBB (SUBTRUCT WITH CARRY) CF
SBB OP1,OP2
*OP1=OP1-OP2-CF
مالحظات مھمه:
:1المقصود في * CFأي قيمة الراية CFالتي كانت قبل عملية الطرح وليست القيمة
الجديدة التي عملتھا عملية الطرح الجديدة.
:2فى ھذا االمر يتم طرح قيمة المصدر) (OP2وقيمة الھدف )(OP1وقيمة سجل
الرية ) (CFوتحفظ النتيجة في الھدف).(OP1
:4بالنسبة للمصدر) (OP2يمكن ان يكون قيمة فورية أو سجل أو موقع فى الذاكرة .
SUB AL,85H
SBB AL,3
:جدول متابعة
االمر AL CF مالحظات
?? ?
مالحظات مھمة:
OP1:1يمكن ان يكون قيمة فورية أو سجل أو موقع فى الذاكرة.
AX=AL*OP1
أي ان المعالج سوف يقوم بضرب OP1فى المسجل ALوھذا المسجل يضع
النتيجة في المسجل .AXلھذا السبب يجب ان نضع احدى القيم في المسجل ALوان
نحفظ قيمة المسجل AHفي مكان اخر قبل عملية الضرب النه بعد عملية الضرب
سوف يقوم المعالج بحذف القيمة القديمة ويضع مكانھا القيمة الجديدة
مثال:
اكتب مقطع برنامج يضرب قيمة الخلية 20Hفي القيمة 8ويحفظ النتيجة في
المسجل CX
الحل:
MOV SI,20H
]MOV AL,[SI
MOV BL,8
MUL BL
MOV CX,AX
اذا كان OP1من نوع كلمة أي 16بت عندھا تتم العملية التالية
DX:AX=AX*OP1
MOV CX,4
MUL CX
مالحظة :لقد اضفنا صفر امام العدد الذي وضعناه في المسجل AXالن القانون
يقول كل عدد يبدأ بحرف من الحروف) (A ,B ,C, D ,E , Fيجب اضافة صفر عن
يساره.
مثال :
اكتب مقطع برنامج ينفذ التمرين التالي
CX= -10 * DL
الحل:
MOV AL,-10
IMUL DL
MOV CX,AX
القسمة
تنقسم عمليات القسمة الى قسمين
:1قسمة االعداد الموجبة فقط
AX/OP1
MOV BL,4
DIV BL
MOV CL,6
DIV CL
AH=2 AL=1
DX:AX/OP1
أي ان المعالج يتعامل مع المسجلين كانھما مسجال واحدا ويقسمھما على OP1
ويحفظ النتيجة بالشكل التالي:
:AXيحتوي على الناتج الصحيح
مثال:
احسب ما يلي
-120/12H
الحل:
MOV AX,-120
MOV BL,12H
IDIV BL
مثال:
اكتب مقطع برنامج يحسب
1234H/-1010
الحل:
MOV DX,0
MOV AX,1234H
MOV CX,-1010
IDIV CX
مالحظة:
لقد وضعنا القيمة صفر في المسجل DXقبل عملية القسمة الن المعالج سوف
يستخدم القيمة الموجودة فيه عند القسمة ويمكن ان تكون قيمة مختلفة عن الصفر
وحتى نتأكد ان القيمة صفر وضعنا الصفر في DX
ثانيا ً العمليات المنطقية
النتيجة من ھذه العمليات تكون اما صدق TRUEوالتي نعبر عنھا في القيمة . 1او
تكون النتيجة من نوع كذب FALSEوالتي نعبر عنھا بالقيمة .0
(1االمر OR
ھنا يكفي شرطا واحدا ان يتحقق فنحصل على نتيجة صدق.
مالحظات -:
A,B:1عبارة عن بتات .
:3يجب تحويل قيم المصدر والھدف الى الميزان الثنائي حتى نتمكن
من التعامل مع القيم.
مثال:
أوجد قيمة كل مسجل من المسجالت بعد تنفيذ العملية المنطقية التالية:
OR AL , BL
حيث ان:
AL=2FH
BL=52H
الحل:
علينا ان نحول الھدف والمصدر الى الميزان الثنائي
AL=2FH= 00101111
BL=52H= 01010010
والمسجل ALھو الھدف اذاً التأثير يتم عليه حسب النتيجة AL=7FH
(2االمر AND
ھنا يكفي ان ال يتحقق شرطا واحدا حتى نحصل على نتيجة كذب
مالحظات -:
A,B:1عبارة عن بتات .
:3يجب تحويل قيم المصدر والھدف الى الميزان الثنائي حتى نتمكن
من التعامل مع القيم.
مثال:
AL=27H
BL=56H
حيث ان :
AL=27H
BL=56H
الحل:
علينا ان نحول الھدف والمصدر الى الميزان الثنائي
AL=27H= 00100111
BL=56H= 01010110
والمسجل ALھو الھدف اذاً التأثير يتم عليه حسب النتيجة AL=06H
(3االمر TEST
ھنا يكفي ان ال يتحقق شرطا واحدا حتى نحصل على نتيجة كذب .
مالحظات -:
A,B:1عبارة عن بتات .
:3يجب تحويل قيم المصدر والھدف الى الميزان الثنائي حتى نتمكن من
التعامل مع القيم.
:4يعمل ھذا االمر مثل االمر ANDولكن مع فرق بسيط وھو انه ال يؤثر على
الھدف وال على المصدر وانما يؤثر فقط على الرايات ويقوم بتغيير بعض الرايات
مثال:
أوجد قيمة كل مسجل من المسجالت بعد تنفيذ العملية المنطقية التالية:
TEST AL , BL
حيث ان :
AL=27H
BL=56H
الحل:
علينا ان نحول الھدف والمصدر الى الميزان الثنائي
AL=27H= 00100111
BL=56H= 01010110
والمسجل ALھو الھدف ولكن االمر TESTال يؤثر على الھدف المسجل يحافظ
على قيمته السابقة AL=27H
ھنا اذا كانت البتات مختلفة النتيجة 1واذا كانت متشابھة النتيجة 0
مالحظات -:
A,B:1عبارة عن بتات .
:3يجب تحويل قيم المصدر والھدف الى الميزان الثنائي حتى نتمكن من
التعامل مع القيم.
مثال:
AL=A7H
BL=76H
حيث ان :
AL=A7H
BL=76H
الحل:
علينا ان نحول الھدف والمصدر الى الميزان الثنائي
AL=A7H= 10100111
BL=76H= 01110110
والمسجل ALھو الھدف اذاً التأثير يتم عليه حسب النتيجة AL=D1H
(5االمرNOT
ھنا يتم عكس البتات البت التي قيمتھا 1تأخذ القيمة 0والبت التي قيمتھا 0تأخذ
القيمة 1
A النتيجة
0 1
1 0
مالحظات -:
A:1عبارة عن بت.
3يجب تحويل قيمته الى الميزان الثنائي حتى نتمكن من التعامل معه.
مثال:
أوجد قيمة كل مسجل من بعد تنفيذ العملية المنطقية التالية:
NOT AL
حيث ان:
AL=A7H
الحل:
علينا ان نحول الى الميزان الثنائي
AL=A7H= 10100111
Alfayde 2002@yahoo.com