قائمة السجلات + قائمة الرايات
بسم الله الرحمن الرحيم
قائمة السجلات:
يوجد العديد من السجلات، ولكل سجّل دور محدد على الأقل (هناك بعض السجّلات لها عدة أدوار وعدة مهام).
AL/AH/EAX: هو السجل العام، والذي تتغير قيمته بسرعة أثناء عمل الحاسب.
BL/BH/EBX: هو أيضا سجل عام، يمكن استخدامه كفرع للذاكرة (Offset)، كمثال:
"[mov al, byte ptr ds:[bx+10".
CL/CH/ECX: عامة، يستخدم هذا السجل كعداد للحلقات (loops)، كمثال:
"mov ecx, 5; rep movsd"، ويعمل هذا المثال على نسخ 5 كلمات مضاعفة.
DL/DH/EDX: هذا الأخير هو أيضا سجّل عام، وهو إجباري عند العمل للوصول إلى المداخل(ports)، (المداخل هي واسطة للتواصل بين مختلف رقائق الحاسب، مثل المدخل 42h و 43h تستعمل لمراقبة مكبرات الصوت الداخلية).
CS: قطاع ذاكري مخصص للكود (Code Segment).
DS: قطاع ذاكري مخصص للبيانات (Data Segment).
ES: قطاع ذاكري.
FS: قطاع ذاكري آخر.
GS: قطاع ذاكري آخر.
SS: قطاع ذاكري خاص بالمكدس (Stack Segment).
BP: فرع (Offset) ذاكري، وغالبا هو نسخة من السجل SP، حيث يمكننا طرح قيمة من أجل قراءتها في المكدس. (لا يجب علينا تغيير محتوى SP).
EDI/DI: فرع ذاكري يستخدم من قبل ES (أو FS أو GS إذا ما تم تحديده)، كمثال:
"[mov al, byte ptr gs:[10"
EIP/IP: فرع ذاكري خاص بالكود (غير يمكن الوصول إليه مباشرة، لكن يمكن تغيير محتواه بطريقة مباشرة من خلال التعليمات: CALL, JMP أو [J[case، حيث case هي حالة من حالات القفز التي سنراها لاحقا).
ESI/SI: فرع ذاكري يستخدم من قبل DS
ESP/SP: فرع ذاكري يستخدم من قبل المكدس (Stack).
الجدول الآتي يلخص أهم سجلات 16 بت، وحجم كل سجّل:
Register |
Bits 7..0 |
Bits 15..8 |
Main Function |
AX |
AL |
AH |
Accumulator |
BX |
BL |
BH |
Base |
CX |
CL |
CH |
Count |
DX |
DL |
DH |
Data |
SI |
- |
- |
Source Increment |
DI |
- |
- |
Destination Increment |
SP |
- |
- |
Stack Pointer |
BP |
- |
- |
Base Pointer |
CS |
- |
- |
Code Segment |
DS |
- |
- |
Data Segment |
SS |
- |
- |
Stack Segment |
ES |
- |
- |
Extra Segment |
IP |
- |
- |
Instruction Pointer |
قائمة الرايات Flags:
Auxiliary Flag :AF دليل حفظ إضافي.
Carry Flag :CF دليل حفظ.
Direction Flag :DR دليل اتجاه معالجة حزم الرموز.
Interrupt Flag :IF دليل تنفيذ المقاطعات، والمسماة بالمقنّعة.
Overflow Flag :OF دليل الفائض.
Parity Flag :PF دليل الزوجية: PF=0 يعني فردي، PF=1 يعني زوجي.
Sign Flag :SF دليل الإشارة: SF=0 يعني موجب، SF=1 يعني سالب.
Single Step Flag :TF دليل عملية تصحيح الأخطاء.
Zero Flag :ZF دليل القيمة المعدومة.