【问题标题】:GCC inline assembly error: no such instruction: `stosd'GCC 内联汇编错误:没有这样的指令:`stosd'
【发布时间】:2011-06-02 07:21:10
【问题描述】:

天哪,我在 GCC 下编译以下内联汇编代码(使用 -fasm-blocks)时又遇到了一个错误:

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

GCC理解其他stos指令,为什么不接受stosd???

【问题讨论】:

  • 您使用的是哪个版本的编译器?
  • Apple GCC 4.2.1,错误是没有这样的指令:`stosd'...

标签: visual-c++ gcc assembly inline-assembly


【解决方案1】:

如果您使用的是 intel 语法,请使用 STOS 命令的显式版本:REP STOS DWORD PTR:[EDI]

而gcc下的iirc,stosd被称为stosl

【讨论】:

    【解决方案2】:

    解决此问题的另一种方法是告诉 gcc 使用带有“-masm=intel”的 intel 汇编语法。

    【讨论】:

      猜你喜欢
      • 2018-06-19
      • 2021-04-08
      • 1970-01-01
      • 2019-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      相关资源
      最近更新 更多