第8章 ARM汇编语言与嵌入式C混合编程(1).ppt
《第8章 ARM汇编语言与嵌入式C混合编程(1).ppt》由会员分享,可在线阅读,更多相关《第8章 ARM汇编语言与嵌入式C混合编程(1).ppt(53页珍藏版)》请在三一文库上搜索。
1、第第8章章 ARM汇编语言与嵌入式汇编语言与嵌入式C混合编程混合编程本章首先简要的介绍了嵌入式本章首先简要的介绍了嵌入式C语言的编程规语言的编程规范,嵌入式开发中常用的位运算与控制位域范,嵌入式开发中常用的位运算与控制位域及在嵌入式及在嵌入式C程序设计中要注意的问题,为读程序设计中要注意的问题,为读者进行嵌入式者进行嵌入式C程序设计打基础。然后介绍在程序设计打基础。然后介绍在ARM汇编语言与嵌入式汇编语言与嵌入式C语言进行相互调用语言进行相互调用的标准(的标准(AAPCS),并以大量的实例说明了),并以大量的实例说明了相互调用应注意的问题。相互调用应注意的问题。内容提要内容提要81 嵌入式嵌入
2、式C编程规范编程规范82 嵌入式嵌入式C程序设计中的位运算程序设计中的位运算83 嵌入式嵌入式C程序设计中的几点说明程序设计中的几点说明84 嵌入式嵌入式C程序设计格式程序设计格式85 过程调用标准过程调用标准ATPCS与与AAPCS86 ARM汇编语言与嵌入式汇编语言与嵌入式C混合编程混合编程8.1 嵌入式嵌入式C编程规范编程规范n在当前的嵌入式开发中,嵌入式在当前的嵌入式开发中,嵌入式C语言是最语言是最为常见的程序设计语言,对于程序员来说,为常见的程序设计语言,对于程序员来说,能够完成相应功能的代码并不一定是优秀的能够完成相应功能的代码并不一定是优秀的代码。代码。n优秀的代码还要具备优秀的
3、代码还要具备易读性易读性、易维护性易维护性、具、具有有可移植和高可靠性可移植和高可靠性。8.1.1 嵌入式嵌入式C程序书写规范程序书写规范n排版规则如下:排版规则如下:n(1)程序块要采用缩进风格编写)程序块要采用缩进风格编写 n(2)较长的语句(例如超过)较长的语句(例如超过80个字符)要分成多行书写个字符)要分成多行书写 n(3)循环、判断等语句中若有较长的表达式或语句,则要)循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分进行适应的划分 n(4)若函数或过程中参数较长,也要进行适当的划分。)若函数或过程中参数较长,也要进行适当的划分。n(5)一般不要把多个短语句写在一行中)一
4、般不要把多个短语句写在一行中 n(6)程序块的分界符语句的大括号)程序块的分界符语句的大括号“”与与“”一般独占一一般独占一行并且在同一列行并且在同一列 书写规范示例:书写规范示例:8.1.2 命名规则命名规则n(1)标识符的名称要简明,能够表达出确切的含义标识符的名称要简明,能够表达出确切的含义,可以使用完整的单词或通常可以理解的缩写。,可以使用完整的单词或通常可以理解的缩写。n(2)如果在命名中使用特殊约定或缩写,则要进)如果在命名中使用特殊约定或缩写,则要进行注释说明。行注释说明。n(3)对于变量命名,一般不取单个字符)对于变量命名,一般不取单个字符,例如例如i、j、k.n(4)函数名一
5、般以大写字母开头;所有常量名字)函数名一般以大写字母开头;所有常量名字母统一用大写。母统一用大写。8.1.3 注释说明注释说明n注释有助于程序员理解程序的整体结构,也便于以注释有助于程序员理解程序的整体结构,也便于以后程序代码的维护与升级。常用的规则如下:后程序代码的维护与升级。常用的规则如下:n(1)注释语言必须准确、简洁且容易理解)注释语言必须准确、简洁且容易理解;n(2)程序代码源文件头部应进行注释说明)程序代码源文件头部应进行注释说明;n(3)函数头部应进行注释;)函数头部应进行注释;n(4)程序中所用到的特定含义的常量、变量,在)程序中所用到的特定含义的常量、变量,在声明时都要加以注
6、释声明时都要加以注释;n(5)对于宏定义、数据结构声明,如果其命)对于宏定义、数据结构声明,如果其命名不是充分自注释的,也要加以注释。名不是充分自注释的,也要加以注释。n(6)如果注释单独占用一行,与其被注释的)如果注释单独占用一行,与其被注释的内容进行相同的缩进方式,一般将注释与其内容进行相同的缩进方式,一般将注释与其上面的代码用空行隔开上面的代码用空行隔开 n(7)程序代码修改时,其注释也要及时修改)程序代码修改时,其注释也要及时修改,一定要保证代码与注释保持一致。,一定要保证代码与注释保持一致。命名规则示例:命名规则示例:8.2 嵌入式嵌入式C程序设计中的位运算程序设计中的位运算n在嵌入
7、式程序设计中,位操作是最常用的运在嵌入式程序设计中,位操作是最常用的运算之一,因为在很多情况下要对寄存器中的算之一,因为在很多情况下要对寄存器中的某位或某个管脚进行操作,这些都需要用位某位或某个管脚进行操作,这些都需要用位操作来完成。操作来完成。8.2.1 按位与操作按位与操作n按位与运算符按位与运算符“&”是把参与运算的两个操作是把参与运算的两个操作数所对应的各个二进制位进行按位相与。只数所对应的各个二进制位进行按位相与。只有当对应的两个二进制位全为有当对应的两个二进制位全为1时,结果才为时,结果才为1,否则为,否则为0。参与运算的两个操作数以补码。参与运算的两个操作数以补码形式出现。形式出
8、现。n例如例如7&3,补码分别为,补码分别为0000 0111与与0000 0011 按位与运算后结果为按位与运算后结果为0000 0011等于十等于十进制的进制的3。按位与操作可以实现将特定的位清。按位与操作可以实现将特定的位清零,也可以用于提取出某数的指定位。零,也可以用于提取出某数的指定位。8.2.2按位或操作按位或操作n按位或操作运算符按位或操作运算符“|”是把参与运算的两个是把参与运算的两个操作数对应的各个二进制位进行按位相或。操作数对应的各个二进制位进行按位相或。对应的两个二进制位中只要有一个为对应的两个二进制位中只要有一个为1,结果,结果就为就为1,当两个对应的二进制位都为,当两
9、个对应的二进制位都为0时,结时,结果位为果位为0。参与运算的两个操作数均以补码形。参与运算的两个操作数均以补码形式出现。式出现。n例如例如7|3,7的补码为的补码为0000 0111,3的补码的补码为为0000 0011,结果为,结果为0000 0111。按位与操。按位与操作可以实现将特定位的置位操作,也可以用作可以实现将特定位的置位操作,也可以用于提取出某数的指定位。于提取出某数的指定位。8.2.3 按位异或操作按位异或操作n按位异或运算符按位异或运算符“”是将参与运算的两个操是将参与运算的两个操作数对应的各个二进制位进行相异或,当对作数对应的各个二进制位进行相异或,当对应的两个二进制位相异
10、时,结果位为应的两个二进制位相异时,结果位为1,相同,相同时为时为0。参与运算的两个操作数均以补码形式。参与运算的两个操作数均以补码形式出现。出现。n例如例如7|3,7的补码为的补码为0000 0111,3的补码的补码为为0000 0011,结果为,结果为0000 0100。应用举例:应用举例:n通过通过3次异或操作将寄存器次异或操作将寄存器rPDATAE中的内中的内容与变量容与变量tmp的值进行交换。的值进行交换。nrPDATAE=rPDATAE tmpntmp=tmp rPDATAE nrPDATAE=rPDATAE tmp8.2.4 取反操作取反操作n取反运算符取反运算符“”实现对参与运
11、算的操作数对实现对参与运算的操作数对应的各个二进制位按位求反。取反运算符应的各个二进制位按位求反。取反运算符“”具有右结合性。所有具有右结合性。所有1变为变为0,0变为变为1n。例如。例如(0101 1001)=1010 0110。在程序。在程序中主要用于将操作数的某位或某些位取反,中主要用于将操作数的某位或某些位取反,为其他操作提供数据准备。为其他操作提供数据准备。8.2.5 移位操作移位操作n移位操作分为左移操作与右移操作。左移运移位操作分为左移操作与右移操作。左移运算符算符“”实现将实现将“”左边的操作数的各个左边的操作数的各个二进制位向左移动二进制位向左移动“”实现将实现将“”左边的操
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 ARM汇编语言与嵌入式C混合编程1 ARM 汇编语言 嵌入式 混合 编程
链接地址:https://www.31doc.com/p-21712639.html