xcode 5.1内联汇编

时间:2014-05-08 08:44:26

标签: xcode inline-assembly

我正在努力将一段内联汇编代码放入我的xcode函数中。我需要做的是重写用C ++编写的这段旧代码。有人可以帮我这个吗?提前谢谢。

unsigned long myFunction(void)
{
  static unsigned long rnd=0x4159c49;
  unsigned char y; 
  __asm
  {
    rdtsc;
    mov [y], al;
  }

  //some other operations
  return (rnd);
}

我试图在xcode中搜索内联汇编,但无法找到任何相关内容。 我试着按照下面的方式使用内联汇编,但是它给了我错误预期寄存器:

__asm__(
    "rdtsc"
    "mov [y], al"
  );

1 个答案:

答案 0 :(得分:0)

此代码段获取完整的64位RDTSC值:

  uint32_t eax, edx;
  asm __volatile__ (
    "rdtsc" "\n\t"
    : "=a" (eax), "=d" (edx)
    :
  );

如果您只想要低8位,那么您可以这样做:

  y = (unsigned char)eax;

我的猜测是,这是某些RNG功能的一部分,你只是将这个计时器值用作种子,在这种情况下你也可以使用不需要内联asm的更便携的东西。