2010-01-01 52 views
0

如何將這些代碼從Linux彙編轉換爲英特爾彙編?如何在Intel語法中編寫這些行?

pushl cb_queue 
pushl %eax 
popl (%eax) 

jg .FOR_end0 
.FOR_end0: 

sete (%esp) 

pushl $.rte_isqrt 
.rte_isqrt: 
.string "isqrt returns no value" 
+0

「Linux的組件」 (??)大會與操作系統無關 - 這是你的處理器的類型。我認爲通過「英特爾彙編」你的意思是x86?請澄清。 – silentcontributor 2010-01-01 13:57:50

+0

是的。英特爾彙編= x86 – DavidH 2010-01-01 14:01:07

+0

英特爾一直在使用許多不同的體系結構,而不僅僅是x86,所以「英特爾彙編」並不意味着什麼。您應該使用x86 AT&T語法和Intel語法 – 2013-12-29 01:00:28

回答

1

運行intel2gas -g(開關反轉平移的方向)產生:

push dword [cb_queue] 
push eax 
pop  dword [eax] 

jg .FOR_end0 
.FOR_end0: 

sete [esp] 

push dword .rte_isqrt 
.rte_isqrt: 
db  'isqrt returns no value' 

(它通常被稱爲AT & T語法,而不是Linux組件)

+0

明確標記它非常感謝! – DavidH 2010-01-01 14:38:09