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"
);
我应该这样做

您可以在以下位置找到文档: