اجعل رورو44 صفحتك الرئيسية | احفظ رورو44 في مفضلتك | ارسل رورو44 إلى صديقك | أعلن على رورو44 | English Interface

 

 

 

شات خدمات مسجات جوال بطاقات رسائل حب دليل مواقع شات خليجي  دردشة منتديات حسناء الفارس عالم الرومانسية

مواقع سعودية | مواقع كويتية | مواقع بحرينية | مواقع قطرية | مواقع عمانية | مواقع يمنية | مواقع عراقية | مواقع اماراتية

 
    دروس في لغات البرمجة   الاسمبلي - ASSEMBLY
 

 

قائمة التعليمات [الجزء الأول]



بسم الله الرحمن الرحيم

 

الآن وبعد الدرسين السابقين وصلنا إلى قائمة التعليمات التي تحوي 34 تعليمة و سنستعرضها إن شاء الله في درسين:

  1. الدرس الاول يحوي 16 تعليمة هي:
    ADD – AND – CALL – CMP – CMPS – IN – IRET – JMP - J[case] – LEA – LDS - LES - LFS – LGS – LSS – LODS
  2. وفي الدرس الثاني توجد 18 تعليمة هي:
    MOV – MOVS - MOVZX - MUL – NOT – OR - OUT - PUSH – POP – REP – RET – SCAS – SHL – SHR – STOS – SUB – TEST - XOR

في كل تعليمة:

  • المجالين "}" و "{" يحددان البارامترات. والتي قد تكون سجّلا أو منطقة ذاكرية أو قيمة فورية (Immediacy)، وهي في الغالب عدد.

  • اللاحقة "[B أو W أو D]" في نهاية التعليمة تحدد أسلوب معالجة التعليمة.

  • "B" : تعني هذه اللاحقة أن التعليمة من نوع 8 بت (Byte)، وهذا ما يجعل استعمال السجل AL ضروريا.

  • "W" : تعني هذه اللاحقة أن التعليمة من نوع 16 بت (Word). استعمال السجل AX ضروري.

  • "D" : تعني هذه اللاحقة أن التعليمة من نوع 32 بت (DWord) . استعمال السجل EAX ضروري.

بسم الله نبدأ:

1- التعليمة ADD:

ADD {destination},{source} // ADD {الوجهة},{القناع} 

تقوم هذه التعليمة بإضافة قيمة المصدر لقيمة الوجهة، وينجم عن هذه العملية تغيير في محتوى الرايات، ويتم تخصيص ناتج الجمع للمعامل الأول. 

قد يكون أحد المعاملين سجلا، كما فد يكون المعامل الثاني مرجع ذاكري (متغير أو عنوان ذاكري) أو  immediate (رقم مباشر).

add ax, bx //  => ax=ax+bx   // (reg, reg) كلا المعاملين سجّلا
add ax, 5 //  => ax=ax+5   // (reg, imm)
المعامل الثني هو عدد مباشر
add ax, var//  => ax=ax+var   // (reg, mem)
المعامل الثني هو مرجع ذاكري add ax, [si] //  => ax=ax+[si]   // (reg, imm)  المعامل الثني هو مرجع ذاكري

2- التعليمة AND:

AND {destination},{mask} // AND {الوجهة},{القناع} 

لتبسيط هذه التعليمة، ووفقا جدول الحقيقة الذي سنطّلع عليه لاحقا، فإن الناتج صحيح (=1)، إذا كان كلا المعاملين صحيح، والناتج يكون خاطئا (=0) إذا كان أحد المعاملين خاطئا أو كلاهما. 

وبمفهوم آخر أكثر وضوح، تقوم هذه التعليمة بجعل كل بت في الوجهة مساويا للصفر إذا كان القناع مساويا للصفر، في حين لا تغير بت الوجهة إذا كان القناع مساويا للواحد.

 

حسب لغات البرمجة المعروفة يمكننا تمثيل ذلك بـ:

Destination := Destination AND Mask ; // بلغة الباسكال
Destination &= Mask ; // بلغة السي 

3- التعليمة CALL:

CALL {address} 

تطلب الإجراء (procedure) أو الدالة (function) المتواجد في العنوان المحدد. فإذا سبقت التعليمة CALL عدة تعليمات من نوع PUSH، فهذا يعني أنها مجموعة من البارامترات تم تخزينها في المكدس (Stack). وفي هذه الحالة ، فإن الإجراء يبدأ بــ: 

"push [e]bp ; mov [e]bp, [e]sp  "
ويمكننا أيضا إيجاد قراءة للبارامترات على شكل:
" mov {Register}, [ebp – {Value}] "

وأخيرا لا يجب نسيان التعليمة "RET [{Value}]" في نهاية الإجراء. 

4- التعليمة CMP:

CMP {a},{b} 

تقوم هذه التعليمة بمقارنة المتغير a مع المتغير b. وبعدها نجد مباشرة قفزا مشروطا نحو فرع ذاكري آخر "jmp أو je أو jne ...، بصفة عامة j[case] {Offset}".

5- التعليمة CMPS:

CMPS [B/D/W]

هذه التعليمة تقارن كل بايت/كلمة/كلمة_مضاعفة من القطاع والفرع الذاكريين DS :ESI مع القطاع والفرع الذاكريين ES :EDI

6- التعليمة IN:

IN {destination},{port}

هذه التعليمة تقرأ قيمة ذات 8 بت على المنفذ {port}، وتخزنه في الوجهة {destination}. أما السجل الوحيد المسموح باستعماله في هذه العملية فهو السجل DX.

7- التعليمة IRET:

IRET {value}

هذه التعليمة تسمح بمغادرة المقاطعة، وتستعمل فقط للبرامج المستقرة في الذاكرة، مثل سائق (driver) الفأرة. 

8- التعليمة JMP:

JMP {offset} 

هذه التعليمة تمكن من القفز إلى العنوان الذاكري المحدد بالفرع {offset}. 

9- التعليمة  J[case]:

J[case] {offset}

إذا كانت الحالة [case] صحيحة، فإن التعليمة تنفّذ، وينتقل العمل بذلك إلى العنوان المحدد في الفرع {offset}. الحالة [case] هي شرط متعلق بالرايات (flags)، ويتم تنفيذ الشرط وفق قواعد المنطق المعروفة. 

الحالات الممكنة لـ case، بعد أخذ " CMP {a},{b}" كمثال:

غير مؤشرة not signed:

JA : يتم القفز إذا كان أكبر، في مثالنا a > b، إذا كانت الراية (الدليل) CF=ZF=0JAE, JNB, JNC : إذا كان أكبر أو يساوي (a>=b)، إذا كان CF = 0

JB, JC : أصغر (a<b)، إذا كان CF=ZF=1

JBE : أصغر أو يساوي (a<=b)، إذا كان CF><OF و ZF=1.

مؤشرة signed:

JG : أكبر (a>b)، إذا كان SF=ZF=0

JGE : أكبر أو يساوي (a>=b)، إذا كان SF = OF

 

 

JL : أصغر (a<b)، إذا كان SF <> OF 

JLE : أصغر أو يساوي (a<=b)، إذا كان SF<>OF و ZF=1.

متساوية:

JE, JZ : يساوي (a=b)، إذا كان ZF=1.

JNE, JNZ : يختلف عن (a <> b)، إذا كان ZF=0.

10- التعليمة LEA:

LEA {destination},{source}

يتم هنا كتابة عنوان المصدر {source} في الوجهة {destination}. 

هذه التعليمة تكافئ:

MOV {destination},Offset{source} 

11- التعليمة LDS:

LDS {destination},{address}

نسخ عنوان {address} من نوع 32 بت في السجّل DS، (الذي هو قطاعه)، وفي {destination} من نوع 16 بت، (التي هي فرعه). 

12- التعليمة LES:

LES {destination},{address} 

نسخ عنوان {address} من نوع 32 بت في السجّل ES، (الذي هو قطاعه)، وفي {destination} من نوع 16 بت، (التي هي فرعه). 

13- التعليمة LFS:

LFS {destination},{address} 

نسخ عنوان {address} من نوع 32 بت في السجّل FS، (الذي هو قطاعه)، وفي {destination} من نوع 16 بت، (التي هي فرعه). 

14- التعليمة LGS:

LGS {destination},{address} 

نسخ عنوان {address} من نوع 32 بت في السجّل GS، (الذي هو قطاعه)، وفي {destination} من نوع 16 بت، (التي هي فرعه). 

15- التعليمة LSS:

LSS {destination},{address} 

نسخ عنوان {address} من نوع 32 بت في السجّل SS، (الذي هو قطاعه)، وفي {destination} من نوع 16 بت، (التي هي فرعه). 

16- التعليمة LODS:

LODS [B/D/W] 

نسخ البايت/الكلمة/الكلمة_المضاعفة ES :EDI في السجل AL/AX/EAX. 

* التعليمة العكسية لها هي: " STOS [B/D/W]".



المزيد من المواضيع

قائمة السجلات + قائمة الرايات
مدخل عام إلى لغة الأسمبلي + معجم التجميع
الدرس الاول
قائمة المقاطعات
قائمة التعليمات [الجزء الثاني]
الدرس الثالث
اكتب اول برنامج بالاسمبلي
المخزن والاوامر MOV,CMP,JMP
مفاهيم المسجلات
كيفية تشغيل برامج الأسمبلي على البرنامج masm

1

 

الاقسام الرئيسية

دروس للمبتدئين

--

دروس في أنظمة التشغيل

--

دروس في الانترنت

--

دروس في لغات البرمجة

--

دروس في برمجة المواقع

--

دروس في الأوفيس

--

دروس في الرسوم و التصميم

--

دروس في قواعد البيانات

--

دروس في الألعاب والبرامج

--

دروس في المكونات الصلبة

--

دروس في الشبكات

--

دروس في أمن المعلومات

--

دروس في الذكاء الاصطناعي

--

القائمة البريدية

  فضائح | ماسنجر | تداول | الحياة الزوجية | عجائب وغرائب| دروس تعليمية | عالم حواء | فضائح الفن | ستار اكاديمي | نكت | برامج | صور | | شات سعودي | شات عربي | ماسينجر | مسجات | دليل مواقع | دليلك | مواقع سعودية | مواقع كويتية | مواقع بحرينية | مواقع قطرية | مواقع عمانية | مواقع يمنية | مواقع عراقية | مواقع اماراتية | دردشة خليجية | دردشة سعودية | دردشة عربية | شات صوتي | دردشة صوتية | دردشة كويتية | دردشة اماراتية | دردشة عمانية | دردشة قطرية | دردشة بحرينية | دردشة عراقية | دردشة يمنية | سكس | طريق الاسلام, انا مسلم , طريق الهدايه , مسلمون , منوعات اسلاميه | اسلاميات , برامج اسلامية , منوعات اسلامية | جنس | الاسرة المسلمة , الاسرة العربية , اسرتي , عائلتي | برامج الاسره , نصائح معلومات , اسرة عربية سعودية خليجية | دروس تعليمية , مكتبة الدروس التعليمية | شروح برامج , شرح برامج , دورات تعليميه | طب وصحه - المركز الطبي | طبيبك على الانترنت , معلومات طبية , معلومات صحيه

Roro44.com xml :                            

شات سعودي | شات عربي | شات خليجي | العاب | دردشات | العاب بنات

 |  اشهر موقعك | احصائيات الموقع | اسعار الاعلانات |  لمراسلة الإدارة  |

:: ©2007-2003 www.roro44.com All rights reserved ::