如何使用AT& T程序集语法预先添加SS:
或ES:
,而无需添加.byte 0x36
或.byte 0x26
?
即。如何在不使用以下内容的情况下将mov dword ptr ss:[esp+0x10], offset foo
从英特尔语法转换为AT& T
.byte 0x36
movl $foo, 0x10(%esp)
我已经尝试movl $foo, %ss:0x10(%esp)
在没有警告的情况下进行汇编,但是查看二进制文件仍然没有添加SS:
答案 0 :(得分:3)
IIRC,与SS:
和ESP
寄存器一起使用时,不需要EBP
前缀,因为对于这些,它已经是默认值。
这可能是汇编程序为了节省空间而省略它的原因;因此需要手动将SS:
前缀作为0x36
字节发出,因为汇编器不会修改原始字节。