接上一篇写了个简单的程序
#include <stdio.h>
int main(void)
{
int a, c, d;
a = 0x8;
__asm__ __volatile__ (
"ori %0, %2, 0x7\n"// 0x7是立即数,ori指令是逻辑或,%2对应C语言的a,%0=0x8 | 0x7 ,而%0是c语言变量c
"add.w %1, %2, %0\n" // 加法指令 %1 = %2 + %0 ---> d = a(8) + c(15) 所以d就是23
:"=r"(c), "=r"(d) //输出变量 c 对应%0 d 对应%1 = 表示输出 r表示系统使用那个寄存器
:"r"(a) //输入变量 对应变量%2
:
);
printf("c %d d %d \n", c, d);
}
c 15 d 23