小编use*_*590的帖子

我如何在 C 中使用 64 位内联汇编?

int main(void) {
unsigned long long a = 0x0ab0000000234432;
unsigned long long b = 0x0000000000000001;
unsigned long long c = 0x0000000032123001;
unsigned long long r1;

__asm__ __volatile__(
    "mov    %1, %%eax   \n\t"
    "xor    %2, %%eax   \n\t"
    "xor    %3, %%eax   "
    : "=&a" (r1)
    : "g" (a), "g" (b), "g"(c));

for(i=63; i>=0; i--) {
    printf("%d ", (r1 >> i) & 1 );
    if (i%8 == 0) printf(" ");
}
printf("\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)

二进制值是
a = 00001010 10110000 00000000 00000000 00000000 00100011 …

c 64-bit assembly gcc

3
推荐指数
2
解决办法
7082
查看次数

标签 统计

64-bit ×1

assembly ×1

c ×1

gcc ×1