2010-08-08 47 views
2

我怎样才能在前面加上一个SS:ES:使用AT & T汇编语法,而不在.byte 0x36.byte 0x26加入?我怎么能在前面加上一个'SS:`或`ES:`使用AT&T汇编语法

即。我将如何能够mov dword ptr ss:[esp+0x10], offset foo英特尔语法转换到AT &牛逼不使用:

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

我试图movl $foo, %ss:0x10(%esp)是组装没有警告,但通过二进制寻找,仍然没有在SS:

回答

3

添加IIRC,当与ESPEBP寄存器一起使用时,不需要SS:前缀,因为对于这些寄存器,它已经是默认值。

这可能是汇编程序为什么省略空间来节省空间的原因;因此需要手动发出SS:前缀作为0x36字节,因为汇编器不会修改原始字节。

+0

哦,我不知道!虽然MSVC汇编似乎添加它...但是是'movl $ foo,%ss:0x10(%esp)'添加它的正确方法? – 2010-08-08 10:27:30

+0

好的,只是检查,它是 – 2010-08-08 11:25:27

相关问题