<分区>
假设我想从双核 x64 CPU 上的那些寄存器(以及几乎所有这些)中读取值。我怎样才能做到这一点?我可以简单地写这样的东西吗:
uint64_t rax = 0, rbx = 0;
__asm__ __volatile__ (
/* read value from rbx into rbx */
"movq %%rdx, %0;\n"
/* read value from rax into rax*/
"movq %%rax, %1;\n"
/* output args */
: "=r" (rbx), "=r" (rax)
: /* no input */
/* clear both rdx and rax */
: "%rdx", "%rax"
);
然后打印出 rax
和 rbx
?干杯