Как я могу добавить `SS:` или `es:` Используя синтаксис AT & T вспомогательный синтаксис
Вопрос
Как я могу добавить 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
Байт, как ассемблер не модифицирует необработанные байты.
Не связан с StackOverflow