NASM 64 BIT ، عنوان فوري لـ MOVLPs يعطي "بيانات DWORD تتجاوز الحدود"

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

  •  26-09-2019
  •  | 
  •  

سؤال

أحتاج إلى تعليمات MOVLPs بعنوان فوري يبلغ عرضه 64 بت ، والذي يجب أن يكون وفقًا لأدلة Intel ممكنًا تمامًا. لذا ، شيء من هذا القبيل:

movlps xmm0, [0x7fffffffffa0]

ولكن كل ما أحصل عليه هو اقتطاع حجم المعامل إلى 32 بت وطباعة التحذير المقابل:

sample.s:6: warning: dword data exceeds bounds

لقد جربت بأشكال مختلفة من بادئة QWord دون نجاح.

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

المحلول

معظم تعليمات X64 لا تستغرق 64 بت على الفور.

ما لم أكن مخطئًا جدًا ، عليك أن تتحرك عبر سجل Rax.

نصائح أخرى

لا أعتقد أنه يمكنك فعل ذلك. movlps الأحمال أو المتاجر أ القيمة هذا عرضه 64 بت ، لكن العناوين والتشريد الفوري لا تزال تقتصر على 32 بت عمومًا. أفضل ما يمكنك فعله هو

mov rax, 0x7fffffffffa0
movlps xmm0, [rax]

(الأول mov قد تحتاج إلى أن تكون movabs; ؛ أنا لا أعرف حقًا مجموعة بناء جملة Intel)

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