我正在努力将一段内联汇编代码放入我的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"
);
答案 0 :(得分:0)
此代码段获取完整的64位RDTSC值:
uint32_t eax, edx;
asm __volatile__ (
"rdtsc" "\n\t"
: "=a" (eax), "=d" (edx)
:
);
如果您只想要低8位,那么您可以这样做:
y = (unsigned char)eax;
我的猜测是,这是某些RNG功能的一部分,你只是将这个计时器值用作种子,在这种情况下你也可以使用不需要内联asm的更便携的东西。