2011-06-02 141 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”。