سوني مبايل SONY MOBILE
|
|
| لغة التجميع و المعالجات الدقيقة | |
| | |
كاتب الموضوع | رسالة |
---|
zakagadir Admin
عدد المساهمات : 3267 تاريخ التسجيل : 17/11/2007
| موضوع: رد: لغة التجميع و المعالجات الدقيقة الجمعة فبراير 22, 2008 5:10 pm | |
|
1. الأمر U لرؤية جزء من الذاكرة .
2. الأمر D DUMB يؤدي إلي إظهار جزء من الذاكرة .
لتجربة برنامج Debug دعنا نتابع تنفيذ البرنامج التالي:
MODEL SMALL
.STACK 100H
.CODE
MAIN PROC
MOV AX , 4000H ;ax = 4000h
ADD AX , AX ;ax = 8000h
SUB AX , 0FFFFH ;ax = 8001h
NEG AX ;ax = 7fffh
INC AX ;ax = 8000h
MOV AH , 4CH
INT 21H ;DOS exit
MAIN ENDP
END MAIN
بعد كتابة البرنامج السابق وليكن اسمه test.asm وتوليد الملف القابل للتنفيذ Executable file والذي سيحمل الاسم Test.exe يتم نداء برنامج Debug وتحميل البرنامج وذلك بتنفيذ الأمر التالي من محث الـ DOS: c:\asm> DEBUG TEST.EXE
يقوم البرنامج بالتحميل وإظهار المؤشر "-" والذي تشير للاستعداد لتلقي الأوامر.
نبدأ بتجربة الأمر R وذلك لإظهار محتويات المسجلات المختلفة وتكون المخرجات علي الصورة التالية:
- R
AX=0000 BX=0000 CX=001F DX=0000 SP=000A BP=0000 SI=0000 DI=0000
DS=0ED5 ES=0ED5 SS=0EE5 CS=EE6 IP=0000 NV UP DI PL NZ NA PO NC
0EE6:0000 B80040 MOV AX , 4000
|
يقوم البرنامج بإظهار محتويات المسجلات المختلفة وفي السطر الثالث يوضح عنوان الأمر التالي (المطلوب تنفيذه - لاحظ قيمة العنوان ومحتويات المسجلين CS:IP ) متبوعاً بكود الآلة للأمر Machine Code وهو الرقم B80040 وبعد ذلك نجد الأمر مكتوباً بلغة التجميع.
عند تشغيل البرنامج ستجد أرقام مختلفة عن الأرقام الموضحة في هذا المثال وبالذات محتويات المسجلات المختلفة.
في نهاية السطر الثاني يوجد عدد 8 أزواج حروف عل الصورة NV UP DI PL NZ NA PO NC توضح محتويات البيارق المختلفة وذلك حسب الجدول التالي:
البيرق | في حالة رفع البيرق Set | في حالة عدم رفع البيرق Clear | CF (CarryFlag) | CY (CarrY) | NC (No Carry) | PF (Parity Flag) | PE (Parity Even) | PO (Parity Odd) | AF (Auxiliary Flag) | AC (Auxiliary Carry) | NA (No Auxiliary carry) | ZF (Zero Flag) | ZR (ZeRo) | NZ (NonZero) | SF (Sign Flag) | NG (NeGative) | PL (Plus) |
| |
| | | zakagadir Admin
عدد المساهمات : 3267 تاريخ التسجيل : 17/11/2007
| موضوع: رد: لغة التجميع و المعالجات الدقيقة الجمعة فبراير 22, 2008 5:12 pm | |
| OF (Overflow Flag) | OV (OVerflow) | NV (No oVerflow) | بيارق التحكم Control Flags | DF (Direction Flag) | DN (DowN) | UP (UP) | IF ( Interrupt Flag ) | EI (Enable Interrupt) | DI (Disable Interrupt) |
لبداية تشغيل البرنامج نصدر الأمر T أي Trace للتنفيذ خطوة خطوة فيكون التسلسل التالي للأوامر :
في البداية كانت المسجلات علي النحو التالي (سنكرر الشاشة السابقة حتى نتابع التنفيذ بالتفصيل
- R
AX=0000 BX=0000 CX=001F DX=0000 SP=000A BP=0000 SI=0000 DI=0000
DS=0ED5 ES=0ED5 SS=0EE5 CS=EE6 IP=0000 NV UP DI PL NZ NA PO NC
0EE6:0000 B80040 MOV AX , 4000
|
ثم نبدأ التنفيذ: الأمر الأول MOV AX , 4000h
- T
AX=4000 BX=0000 CX=001F DX=0000 SP=000A BP=0000 SI=0000 DI=0000
DS=0ED5 ES=0ED5 SS=0EE5 CS=EE6 IP=0003 NV UP DI PL NZ NA PO NC
0EE6:0003 03C0 ADD AX , AX
|
التنفيذ يضع 4000h في المسجل AX
لاحظ أن المسجل AX أصبح به الرقم 4000H ولم يتم تغيير محتويات البيارق وأن الأمر التالي أصبح الأمر ADD AX,AX
- T
AX=8000 BX=0000 CX=001F DX=0000 SP=000A BP=0000 SI=0000 DI=0000
DS=0ED5 ES=0ED5 SS=0EE5 CS=EE6 IP=0005 OV UP DI NG NZ NA PE NC
0EE6:0005 2DFFFF SUB AX , FFFF
|
لاحظ أن المسجل AX أصبح به الرقم 8000H وأن النتيجة السابقة أثرت في البيارق حيث تم رفع بيرق الفيضان ليشير إلي حدوث فيضان بإشارة وبيرق الإشارة ليشير إلي أن النتيجة سالبة وكذلك بيرق التطابق لأن الخانة الأصغر من المسجل AX (أي AL) تحتوي علي عدد زوجي من الخانات التي بها الرقم 1 . والآن نتابع تنفيذ البرنامج حيث الأمر التالي هو الأمر SUB AX,FFFFh
- T
AX=8001 BX=0000 CX=001F DX=0000 SP=000A BP=0000 SI=0000 DI=0000
DS=0ED5 ES=0ED5 SS=0EE5 CS=EE6 IP=0008 NV UP DI NG NZ AC PO CY
0EE6:0008 F7D8 NEG AX
|
- T
AX=7FFF BX=0000 CX=001F DX=0000 SP=000A BP=0000 SI=0000 DI=0000
DS=0ED5 ES=0ED5 SS=0EE5 CS=EE6 IP=000A NV UP DI PL NZ AC PE CY
0EE6:000A 40 INC AX
|
-T
AX=8000 BX=0000 CX=001F DX=0000 SP=000A BP=0000 SI=0000 DI=0000
DS=0ED5 ES=0ED5 SS=0EE5 CS=EE6 IP=000B OV UP DI NG NZ AC PE CY
0EE6:000B B44C MOV AH , 4C
|
| |
| | | zakagadir Admin
عدد المساهمات : 3267 تاريخ التسجيل : 17/11/2007
| موضوع: رد: لغة التجميع و المعالجات الدقيقة الجمعة فبراير 22, 2008 5:14 pm | |
|
- G
PROGRAM TERMINATED NORMALLY
-Q
C:\>
|
تمارين :
وضع محتويات المسجل المستودع DESTINATION REG وكذلك قيم البيارق بعد تنفيذ كل من الأوامر التالية .
1. ADD AX,BX حيث يحتوي المسجل AX علي الرقم 7FFFh والمسجلBX علي 0001h.
2. SUB AL,B حيث AL=01h و BL=FFh
3. DEC AL حيث AL=00h
4. NEG AL حيث AL=7F
5. XCHG AX,BX حيث AX=1ABCh و BX=712h .
6. ADD AL,BL حيث AL=80h و BL=FFh .
7. SUB AX,BX حيث AX=0000h و BX=8000h .
8. NEG AX حيث AX=0001h .
2-أفترض ان المسجلين BX AX يحتويان علي أرقام موجبة . وتم تنفيذ الأمر ADD AX,BX وضح أنه يوجد محمول إلي الخانة MSB ولا يوجد محمول منها وذلك فقط في حالة حدوث فيضان بإشارة .
أفترض ان المسجلين BX AX يحتويان علي أرقام سالبة . وتم تنفيذ الأمر ADD AX,BX وضح أنه يوجد محمول من الخانة MSB ولا يوجد محمول إليها وذلك فقط في حالة حدوث فيضان بإشارة .
3- أفترض أن الأمر ADD AX,BX تم تنفيذه إذا كانت محتويات المسجل AX هي الرقم الأول بينما المسجل BX به الرقم التالي . وضح محتويات المسجل AX في كل من الحالات الآتية موضحاُ حدوث فيضان بإشارة أو بدون إشارة .
أ. 512Ch ب.FE12h ج. E1E4h د. 7132h هـ. 6389h
4185h+ 1ACBh+ DAB3h+ 7000h+ 1176h+
4- أفترض أن الأمر SUB AX,BX تم تنفيذه إذا كانت محتويات المسجل AX هي الرقم الأول بينما المسجل BX به الرقم التالي . وضح محتويات المسجل AX في كل من الحالات الآتية موضحاُ حدوث فيضان بإشارة أو بدون إشارة .
أ. 2143h ب. 81Feh ج. 19BCh د. 0002h هـ 88CDh
-1986h -1986h -81Feh FE0Fh 71ABh
| |
| | | صاحب التميز
عدد المساهمات : 1 تاريخ التسجيل : 02/05/2010
| موضوع: طلب خاااص لصاحب البحث الأحد مايو 02, 2010 9:16 pm | |
| السلام عليكم ورحمه الله وبركاته
والله ياخوي بحثك هذا حلو وانا الحين قاعد اتعلمه وابغ منك طلب
حل اسئله التاليه لاني ل اعرف حلها
تمارين :
وضع محتويات المسجل المستودع DESTINATION REG وكذلك قيم البيارق بعد تنفيذ كل من الأوامر التالية .
1. ADD AX,BX حيث يحتوي المسجل AX علي الرقم 7FFFh والمسجلBX علي 0001h.
2. SUB AL,B حيث AL=01h و BL=FFh
3. DEC AL حيث AL=00h
4. NEG AL حيث AL=7F
5. XCHG AX,BX حيث AX=1ABCh و BX=712h .
6. ADD AL,BL حيث AL=80h و BL=FFh .
7. SUB AX,BX حيث AX=0000h و BX=8000h .
8. NEG AX حيث AX=0001h .
2-أفترض ان المسجلين BX AX يحتويان علي أرقام موجبة . وتم تنفيذ الأمر ADD AX,BX وضح أنه يوجد محمول إلي الخانة MSB ولا يوجد محمول منها وذلك فقط في حالة حدوث فيضان بإشارة .
أفترض ان المسجلين BX AX يحتويان علي أرقام سالبة . وتم تنفيذ الأمر ADD AX,BX وضح أنه يوجد محمول من الخانة MSB ولا يوجد محمول إليها وذلك فقط في حالة حدوث فيضان بإشارة .
3- أفترض أن الأمر ADD AX,BX تم تنفيذه إذا كانت محتويات المسجل AX هي الرقم الأول بينما المسجل BX به الرقم التالي . وضح محتويات المسجل AX في كل من الحالات الآتية موضحاُ حدوث فيضان بإشارة أو بدون إشارة .
أ. 512Ch ب.FE12h ج. E1E4h د. 7132h هـ. 6389h
4185h+ 1ACBh+ DAB3h+ 7000h+ 1176h+
4- أفترض أن الأمر SUB AX,BX تم تنفيذه إذا كانت محتويات المسجل AX هي الرقم الأول بينما المسجل BX به الرقم التالي . وضح محتويات المسجل AX في كل من الحالات الآتية موضحاُ حدوث فيضان بإشارة أو بدون إشارة .
أ. 2143h ب. 81Feh ج. 19BCh د. 0002h هـ 88CDh
-1986h -1986h -81Feh FE0Fh 71ABh
- اكتب عبارات (وليس برنامج كامل) لتقوم بالآتي:
1-قراءة حرف ثم طباعته في الموضع التالي في الشاشة في نفس السطر.
2- قراءة حرف كبير Upper case letter ثم طباعته في الموضع التالي بنفس السطر في الشاشة وذلك في صورة حرف صغير Lower case letter.
هذا بس الله يخليك ابغي الحل في اقرب وقت ممكن
وارجوا من الاداره اذا وصل الحل بانهم يرسلونه علي عبر البريد اذا لم ادخل
اخر وقت لي لدخول النت بكره العصر للضروف
الله يوفقك يا خي الفاضل ويوفقنا يارب وكل مسلم
| |
| | | | لغة التجميع و المعالجات الدقيقة | |
|
مواضيع مماثلة | |
|
| صلاحيات هذا المنتدى: | لاتستطيع الرد على المواضيع في هذا المنتدى
| |
| |
| |
|