Как я могу добавить `SS:` или `ES:`, используя синтаксис сборки AT & T - PullRequest
2 голосов
/ 08 августа 2010

Как можно добавить 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:

1 Ответ

3 голосов
/ 08 августа 2010

IIRC, префикс SS: не требуется при использовании с регистрами ESP и EBP, потому что для них это уже значение по умолчанию.

Это может быть причиной того, что ассемблер просто опускает его для экономии места; поэтому необходимо вручную выдавать префикс SS: в виде байта 0x36, поскольку ассемблер не будет изменять необработанные байты.

...