ما هو سجل x86 يدل على موقع المصدر في تعليمات movsb؟

StackOverflow https://stackoverflow.com/questions/3887586

  •  28-09-2019
  •  | 
  •  

سؤال

ما هو سجل x86 يدل على موقع المصدر في تعليمات movsb؟

هل كانت مفيدة؟

المحلول

في وضع 32 بت ، esi.

بالتحديد، movsb نسخ بايت واحد من ds:esi إلى es:edi, ، يضبط كلاهما esi و edi بحلول 1 ، إما لأعلى أو لأسفل اعتمادًا على علامة الاتجاه.

نصائح أخرى

كيفية استخراج تلك المعلومات من الدليل

الآن وبعد أن قمت بتسجيل الدخول إلى OSDEV.org ، فقد حان الوقت لدفع ديونك الأخلاقية من خلال تعلم ذلك بالفعل. :-)

Intel Manual Volume 2 Set Set Set Reference - 325383-056us September 2015 القسم "movs/movsb/movsw/movsd/movsq - يجب أن تكون بيانات من سلسلة إلى سلسلة":

يحرك البايت أو الكلمة أو الكلمة المزدوجة المحددة مع المعامل الثاني (المعامل المصدر) إلى الموقع المحدد مع المعامل الأول (المعامل الوجهة). توجد كل من معاملات المصدر والوجهة في الذاكرة. تتم قراءة عنوان المعامل المصدر من سجلات DS: ESI أو DS: SI

برنامج اختبار الحد الأدنى

أخيرًا ، يجب عليك إنشاء برنامج الحد الأدنى الذي يستخدم التعليمات لمعرفة ما إذا كنت قد فهمته بشكل صحيح:

section .data
    src db 0
    dest db 1
section .text
global _start
_start:
    mov esi, src
    mov edi, dest
    cld
    movsb
    /* dest == 0*/

نسخة قابلة للتشغيل من هذا مع التأكيدات على جيثب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top