NASM 64 BIT ، عنوان فوري لـ MOVLPs يعطي "بيانات DWORD تتجاوز الحدود"
سؤال
أحتاج إلى تعليمات 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)
لا تنتمي إلى StackOverflow