如何在前面加上使用AT&T汇编语法一个SS:ES:无需在.byte 0x36.byte 0x26加入?

即。我将如何能够从英特尔语法AT&T mov dword ptr ss:[esp+0x10], offset foo转换,而无需使用:

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

我试图movl $foo, %ss:0x10(%esp)其组装而不警告,但,期待通过二进制,仍然不添加在SS:

有帮助吗?

解决方案

IIRC,与SS:ESP寄存器使用时不需要EBP前缀,因为对于这些,已经是默认的。

这可能是为什么汇编器只是它省略以节省空间的原因;因此需要手动发射SS:前缀作为0x36字节,因为汇编器将不修改原始字节。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top