使用内联汇编器,我可以指定一个添加操作 两个输入和一个结果如下:
int a = 5;
int b = 5;
int res;
asm volatile (
" add %1, %2, %0 \n\t"
: "=r" (res)
: "r" (a), "r" (b)
: "%g0"
);
在 32 位架构上,这会产生一个指令字,看起来像 这个:0x91050101
现在我想知道,而不是明确指定加法的汇编代码, 我想立即指定指令字并将其放入可执行文件中。这里应该看起来像这样
asm volatile (%x91, %x05, %x01, %x01);
任何人都知道我在哪里可以找到更多信息如何做到这一点以及语法必须如何做到这一点(以上只是一个疯狂的猜测)。
非常感谢!
最佳答案
asm volatile (
" .byte 0x91, 0x5, 0x1, 0x1 \n"
);
应该这样做。
您可以在 http://sourceware.org/binutils/docs/as/ 找到文档
关于c - 内联汇编问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4734414/