برمجة:أسمبلي:قائمة بأوامر أسمبلي لتصميم x86

من كتب

إن أجهزة الحاسوب المبنية بتصميم x8 6 فيها ثمانية خانات تخزين (Register) للإستخدام العام من قبل البرامج، 6 خانات تخزين لعناوين مناطق في الذاكرة ، وخانة تخزين واحدة للمعلومات (قيم تحمل إما 0 أو 1). وكذلك مؤشر للأوامر واحد.

48Jkss <a href="http://feapfdtinico.com/">feapfdtinico</a>, [url=http://oylocvzfdsec.com/]oylocvzfdsec[/url], [link=http://bvyolijwwgqd.com/]bvyolijwwgqd[/link], http://xsiwbexszjut.com/

I2ok6a <a href="http://atdqjdjjbhuy.com/">atdqjdjjbhuy</a>, [url=http://afsakxuxiilp.com/]afsakxuxiilp[/url], [link=http://uhqrggxoymvw.com/]uhqrggxoymvw[/link], http://vyqwwqgxrnox.com/

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

خانة تخزين المعلومات[عدل | عدل المصدر]

خانة تخزين المعلومات أو Flags Register هي خانة من 32 بت تستخدم لتخزين ومراقبة نتائج العمليات وحالة المعالج. يسمى كل بت منها راية بالإنجليزية Flag.

EFLAGS Flags
0 0 0 0 0 0 0 0 0 0 ID VIP VIF AC VM RF 0 NT IOPL OF DF IF TF ZF 0 AF 0 PF 1 CF


البتات رقم 0 ورقم 1 محجوزان ومن المفترض ان لا يتم تغييرهما.

تستخدم الرايات لاغراض هي :

  • CF : Carry Flag. الباقي في عمليات رياضية بدون إشارة.
  • PF : Parity Flag. تشير إلى كون البايت الأكثر دونية تم آخر تعديل عليه عدد البتات فيه فردي أم زوجي.
  • AF : Adjust Flag. الباقي للعمليات الحسابية على Binary Code Decimal (BCD).
  • ZF : Zero Flag. يشير إذا ما كانت نتيجة العملية الأخيرة صفر (0).
  • SF : Sign Flag. يشير إذا ما كانت إشارة العدد ناقص (سالبة).
  • TF : Trap Flag. تشير إلى كون نظام في تهيئة البحث عن المشاكل والأخطاء وبالتالي التصبيق يتم خطوة خطوة.
  • IF : Interuption Flag. يشير إلى كون المقاطعات (Interrupts) مسموحة.
  • DF : Direction Flag. Stream direction. Set if increments addresses.
   * OF : Overflow Flag. Set if overflow on signed arithmetic operations.
   * IOPL : I/O Privilege Level field (2 bits). I/O Privilege Level of the current process.
   * NT : Nested Task flag. Controls chaining of interrupts. Set if the current process is linked to the next process.
   * RF : Resume Flag. Response to debug exceptions.
   * VM : Virtual-8086 Mode. Set if in 8086 compatibility mode.
   * AC : Alignment Check. Set if alignment checking in of memory references are done.
   * VIF : Virtual Interrupt Flag. Virtual image of IF.
   * VIP : Virtual Interrupt Pending flag. Set if an interrupt is pending.
   * ID : Identification Flag. Support for CPUID instruction if can be set.


MOV[عدل | عدل المصدر]

الأمر mov يقوم بتقل المعلومات من وحدة تخزين (Register) أو منطقة ذاكرة أو قيمة ثابتة إلى مكان تخزين آخر.

يمكنه نقل من وحدة تخزين في المعالج إلى وحدة تخزين أخرى ، مثال:

mov ax,bx

أو

mov cl,dh 

كما يمكنه وضع قيمة ثابتة (عدد صحيح) في وحدة تخزين المعالج.

mov 5,al 

أو

mov 3AB5H,cx

ووضع الحرف H بعد الرقم يعني أن الرقم بنظام العد الست عشري Hexadicimal ، أي أن كل خانة يمكن أن تحتوي على 16 عددا وليس على 10 فقط كما في النظام العشري ، وتستبدل القيم التي تعبر عن 10 و 11 و 12 و13 و 14 و15 في النظام العشري بخانة واحدة لكل منها كالترتيب الآتي A B C D E F ، فيكون العدد FFh على سبيل المثال هو عبارة عن 15 + 15×16 ، تماما كما أن العدد 99 هو عبارة عن 9 + 9×10