كيف يمكنني إعداد `ss:` أو `es:` `باستخدام بناء جملة AT&T

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

  •  26-09-2019
  •  | 
  •  

سؤال

كيف يمكنني إعداد أ SS: أو ES: باستخدام بناء جملة AT&T دون إضافة في أ .byte 0x36 أو .byte 0x26?

بمعنى آخر. كيف يمكنني التحويل mov dword ptr ss:[esp+0x10], offset foo من بناء جملة Intel إلى AT&T دون استخدام:

.byte   0x36
movl    $foo, 0x10(%esp)

لقد حاولت movl $foo, %ss:0x10(%esp) الذي يتجمع دون تحذيرات ، ولكن ، النظر من خلال الثنائي ، لا يزال لا يضيف في SS:

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

المحلول

IIRC ، و SS: البادئة غير مطلوبة عند استخدامها مع ESP و EBP السجلات ، لأنه بالنسبة لهذه ، هو بالفعل الافتراضي.

قد يكون هذا هو السبب وراء حذفه المجمع ببساطة للحفاظ على المساحة ؛ لذلك الحاجة إلى تنبعث يدويًا SS: بادئة ك 0x36 بايت ، لأن المجمع لن يعدل بايتات الخام.

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