(精品)第八次课 汇编语言和c的混合编程.ppt
《(精品)第八次课 汇编语言和c的混合编程.ppt》由会员分享,可在线阅读,更多相关《(精品)第八次课 汇编语言和c的混合编程.ppt(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编与c的混合编程在嵌入式系统开发中,目前使用的主要编程在嵌入式系统开发中,目前使用的主要编程语言是语言是C C和汇编,在稍大规模的嵌入式软件和汇编,在稍大规模的嵌入式软件中,例如含有中,例如含有OSOS,大部分的代码都是用,大部分的代码都是用C C编编写的,因为写的,因为C C语言的结构比较好,便于人的语言的结构比较好,便于人的理解,而且有大量的支持库。理解,而且有大量的支持库。汇编语言,例如开机时硬件系统的初始化,汇编语言,例如开机时硬件系统的初始化,包括包括CPUCPU状态的设定,中断的使能,主频的状态的设定,中断的使能,主频的设定,以及设定,以及RAMRAM的控制参数及初始化,一些的控
2、制参数及初始化,一些中断处理方面也可能涉及汇编。中断处理方面也可能涉及汇编。C和汇编的混合编程在在c c中嵌入汇编指令中嵌入汇编指令在汇编程序和在汇编程序和c c程序之间进行变量的互访程序之间进行变量的互访在汇编程序,在汇编程序,c c程序之间的相互调用程序之间的相互调用1在在C语言中内嵌汇编语言中内嵌汇编在在C C中内嵌的汇编指令包含大部分的中内嵌的汇编指令包含大部分的ARMARM和和ThumbThumb指指令,存在一些限制,主要有下面几个方面:令,存在一些限制,主要有下面几个方面:不能直接向不能直接向PCPC寄存器赋值,程序跳转要使用寄存器赋值,程序跳转要使用B B或者或者BLBL指令指令
3、在使用物理寄存器时,不要使用过于复杂的在使用物理寄存器时,不要使用过于复杂的C C表达表达式,避免物理寄存器冲突式,避免物理寄存器冲突R12R12和和R13R13可能被编译器用来存放中间编译结果,计可能被编译器用来存放中间编译结果,计算表达式值时可能将算表达式值时可能将R0R0到到R3R3、R12R12及及R14R14用于子程序用于子程序调用,因此要避免直接使用这些物理寄存器调用,因此要避免直接使用这些物理寄存器内嵌汇编使用的标记是_asm,用法如下:_asminstruction;instructioninstruction void enable_IRQ(void)int tmp;_asm
4、 MRS tmp,CPSR BIC tmp,tmp,#80 MSR CPSR_c,tmp void disable_IRQ(void)int tmp;_asm MRS tmp,CPSR ORR tmp,tmp,#80 MSR CPSR_c,tmp 80=0 x50=0b1010000#includevoidmy_strcpy(constchar*src,char*dest)charch;_asmloop:ldrbch,src,#1strbch,dest,#1cmpch,#0bneloopintmain()char*a=forgetitandmoveon!;charb64;my_strcpy(a
5、,b);printf(original:%s,a);printf(copyed:%s,b);return0;内存用户数据区变量 i变量 j变量 i_pointer362000200020023010在程序中定义一个在程序中定义一个变量变量,在编译时就给,在编译时就给这个变量分配一个这个变量分配一个内存单元内存单元,同时根据,同时根据变量的类型决定这个内存单元的大小。变量的类型决定这个内存单元的大小。如:整型如:整型2字节,实型字节,实型4字节。字节。内存中每一个字节都有一个编号,内存中每一个字节都有一个编号,就是就是“地址地址”。对每一个变量,它在内存中都有一个对每一个变量,它在内存中都有一个
6、存储位置,这个位置就是该变量的存储位置,这个位置就是该变量的地址地址,对变量值的存取是通过地址进行。对变量值的存取是通过地址进行。在在C语言中这个语言中这个地址地址被形象化地称为被形象化地称为“指针指针”。指针指针:一个变量的:一个变量的地址地址。指针变量指针变量:存放:存放地址的变量地址的变量.定义一个指针变量定义一个指针变量 指针变量在使用前必须定义,使其指向特定类型指针变量在使用前必须定义,使其指向特定类型的变量,指针变量存放地址,必须定义为的变量,指针变量存放地址,必须定义为“指针类型指针类型”。v定义的一般形式:定义的一般形式:基类型基类型 *指针变量名指针变量名;l基类型:用来指定
7、指针变量可以指向的变量的类型。基类型:用来指定指针变量可以指向的变量的类型。将决定指针移动和运算时的移动量。将决定指针移动和运算时的移动量。构成:构成:存储类型存储类型 数据类型数据类型l*:表示该变量为指针类型:表示该变量为指针类型注意:注意:1、指针变量名是、指针变量名是p1,p2,不是不是*p1,*p22、指针变量只能指向定义时所规定类型的变量、指针变量只能指向定义时所规定类型的变量3、指针变量定义后,、指针变量定义后,变量值不确定变量值不确定,应用前必须先赋值,应用前必须先赋值2 2在汇编中使用在汇编中使用C C定义的全局变量定义的全局变量 汇编通过地址访问c的全局变量访问方法:使用I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品第八次课 汇编语言和c的混合编程 精品 第八 汇编语言 混合 编程
限制150内