噢,在 GCC 下编译以下内联汇编代码( -fasm-blocks )时,我又遇到了另一个错误:
_asm
{
mov ecx, esi
shr ecx, 2
rep stosd
};
GCC 了解其他 stos 说明,为什么不接受 stosd ???
答案 0 :(得分:2)
看作是使用英特尔语法,只需查看STOS
命令的显式版本:REP STOS DWORD PTR:[EDI]
。
和gir下的iirc,stosd
被称为stosl
。
答案 1 :(得分:1)
解决此问题的另一种方法是告诉gcc使用带有“-masm = intel”的英特尔汇编语法。