在现代嵌入式操作系统中,汇编语言当然必不可少,汇编语言的优势就是执行速度快。如果在C语言的代码中,在关键的地方内嵌汇编,那么效率将会大大的提高,我们来看看代码:
#include <stdio.h>
int main(void)
{
int a = 10 ;
int b = 20 ;
int addsum ;
int subsum ;
// int mulsum ;
__asm__ __volatile__ (
//传参
"mov r0 , %2 \n" //mov 执行是将第二个操作数移到第一个操作数上
"mov r1 , %3 \n"
//运算
"mul r2 , r1 , r0 \n" //将r1*r0的值赋值给寄存器r2
// "add r2 , r1 , r0 \n" //将r1+r0的值赋值给寄存器r2
"sub r3 , r1 , r0 \n" //<span style="font-family: Arial, Helvetica, sans-serif;">将r1-r0的值赋值给寄存器r2</span>
//传参数
"mov %0 , r2 \n"
"mov %1 , r3 \n"
//在汇编的代码中,没有除法,除法是一个协处理器的函数
//参数是从上到下,从左到右以零开始自增 %0 %1 %2
:"=r"(addsum),"=r"(subsum)
:"r"(a),"r"(b)
:"r0","r1","r2","r3"
);
printf("a : %d b :%d addsum:%d subsum:%d \n" , a , b , addsum , subsum );
return 0 ;
}
运行结果:
我的运行结果是用了我个人板子上的文件系统来运行的,对于文件系统的搭建,往后会有文章说明
编译器用的是arm-linux-gcc