C 内联汇编问题
使用内联汇编程序,我可以用 两个输入和一个结果如下:C 内联汇编问题,c,assembly,C,Assembly,使用内联汇编程序,我可以用 两个输入和一个结果如下: int a = 5; int b = 5; int res; asm volatile ( " add %1, %2, %0 \n\t" : "=r" (res) : "r" (a), "r" (b) : "%g0" ); 在32位体系结构上,这会生成一个类似于 此地址:0x910
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);
任何人都知道我可以在哪里找到更多的信息如何做到这一点,以及语法应该如何做到这一点(以上只是一个猜测)
非常感谢 Microsoft支持_emit伪指令 我不确定g++支持什么
asm volatile (
" .byte 0x91, 0x5, 0x1, 0x1 \n"
);
我应该这样做
您可以在以下位置找到文档: