Как я могу добавить `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