2011-06-02 142 views
1

哦,我得同時下編譯下面的內聯彙編代碼(與-fasm塊)GCC另一個錯誤:GCC內聯彙編錯誤:沒有這樣的指令:`STOSD」

_asm 
{ 
    mov ecx, esi 
    shr ecx, 2 
    rep stosd 
}; 

GCC瞭解其他STOS說明,爲什麼不會它接受STOSD ???

+0

您使用哪種版本的編譯器? – ColWhi 2011-06-02 07:31:44

+0

還有什麼錯誤? – ColWhi 2011-06-02 07:33:46

+0

蘋果GCC 4.2.1,錯誤是沒有這樣的指令:'stosd'... – Ryan 2011-06-02 09:15:10

回答

2

當您使用intel語法時,只需要輸入顯式版本的STOS命令:REP STOS DWORD PTR:[EDI]

和gcc下的iirc,stosd稱爲stosl

+0

謝謝! REP stosl很棒:) – Ryan 2011-06-02 09:15:41

1

解決此問題的另一種方法是告訴gcc使用intel彙編語法「-masm = intel」。