在现代嵌入式操作系统中,汇编语言当然必不可少,汇编语言的优势就是执行速度快。如果在C语言的代码中,在关键的地方内嵌汇编,那么效率将会大大的提高,我们来看看代码:
#include <stdio.h>int main(void){int a = 10 ;int b = 20 ; int addsum ;int subsum ;//int mulsum ;__asm__ __volatile__ (//传参"movr0 , %2 \n" //mov 执行是将第二个操作数移到第一个操作数上"movr1 , %3 \n"//运算"mulr2 , r1 , r0 \n" //将r1*r0的值赋值给寄存器r2//"addr2 , r1 , r0 \n" //将r1+r0的值赋值给寄存器r2"subr3 , 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