2010-08-08 18 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

相關問題