- 1、本文档共573页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式总复习[精选]
8.2.2按位或操作 2、按位或操作 按位或操作运算符“|”是把参与运算的两个操作数对应的各个二进制位进行按位相或。对应的两个二进制位中只要有一个为1,结果就为1,当两个对应的二进制位都为0时,结果位为0。参与运算的两个操作数均以补码形式出现。 例如7 | 3,7的补码为0000 0111,3的补码为0000 0011,结果为0000 0111。按位与操作可以实现将特定位的置位操作,也可以用于提取出某数的指定位。 P.191 例8-2 通过取出LedStatus的特定位进行判断选择对端口B的数据寄存器进行特定的置1,控制LED1和LED2灯的熄灭,其中端口B(rPDATAB)第2、3管脚分别连接LED1、LED2(注:管脚从第0管脚开始编号,低电平点亮,高电平熄灭,程序不改变其它位)。 If((LedStatus 0x01) == 0x01 rPDATAB = rPDATAB | 0x04; 8.2.3 按位异或操作 3、按位异或操作 按位异或运算符“^”是将参与运算的两个操作数对应的各个二进制位进行相异或,当对应的两个二进制位相异时,结果位为1,相同时为0。参与运算的两个操作数均以补码形式出现。 例如7 | 3,7的补码为0000 0111,3的补码为0000 0011,结果为0000 0100。 P.191 例8-3 按位异或操作可以实现将特定位的值取反,也可以实现在不引入第三变量的情况下,交换两个变量的内容。 解:改变端口B的数据寄存器的第2位的值,如果原来为1则清0,如果原来为0则置1: rPDATAB = rPDATAB | 0x04; 应用举例: (2)通过3次异或操作将寄存器rPDATAE中的内容与变量tmp的值进行交换。 rPDATAE = rPDATAE ^ tmp Tmp = tmp ^ rPDATAE rPDATAE = rPDATAE ^ tmp 8.2.4 取反操作 4、取反操作 取反运算符“~”实现对参与运算的操作数对应的各个二进制位按位求反。取反运算符“~”具有右结合性。所有1变为0,0变为1 。例如~(0101 1001) = 1010 0110。在程序中主要用于将操作数的某位或某些位取反,为其他操作提供数据准备。 8.2.5 移位操作 5、移位操作 移位操作分为左移操作与右移操作。左移运算符“”实现将“”左边的操作数的各个二进制位向左移动“”右边操作数所指定的位数,高位丢弃,低位补0。其值相当于乘以:2“左移位数”次方。 右移运算符“”实现将“”左边的操作数的各个二进制位向右移动“”右边操作数所指定的位数。对于空位的补齐方式,无符号数与有符号数是有区别的。对无符号数进行右移时,低位丢弃,高位用0补齐,其值相当于除以:2“右移位数”次方 左移操作常常应用于将特定的位置1,也可以应用于代替乘法操作和除法操作;在嵌入式应用编程中,左移操作常用作某寄存器对应的位进行设置,如: #define BIT_UTXD1(0x12) #define BIT_UTXD0(0x13) 8.3 嵌入式C程序设计中的几点说明 8.3.1 volatile限制符 8.3.2 地址强制转换与多级指针 8.3.3预处理的使用 8.3.1 volatile限制符 volatile的本意为 “暂态的”或.“易变的”,该说明符起到抑制编译器优化的作用。 如果在声明时用“volatile”关键进行修饰,遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供特殊地址的稳定访问。 P.161 例7-3 对数据区进行64位结果累加操作 先对内存地址0x3000开始的100个字内存单元填入00数据,然后将每个字单元进行64位累加结果保存于[R9:R8]。(R9中存放高32位) _start: MOV R0 , #0X3000 @初始化寄存器 MOV R1 , #0 MOV R2 , #100 loop_1: @第一次循环赋值 STR R1 , [R0],#4 ADD R1 , R1,#1 SUBS R2 , R2,#1 BNE loop_1 MOV R0 , #0X3000 MOV R2 , #100 MOV R9 , #0 MOV R8 , #0 loop_2: @第二次循环累加 LDR R1 , [R0],#4 ADDS R8 , R1,R8@R8=R8+R1,进位影响标志位 ADC R9 , R9 , #0@R9=R9+C,C为进位 SUBS R2 , R2 , #1 BNE loop_2
您可能关注的文档
- 屹磊道馆[精选].doc
- 岁月的记忆[精选].doc
- 岗前井下安全练习题参照.doc
- 岁寒三友(墨梅图题诗)[精选].ppt
- 岩体压力扩散角试验方案[精选].doc
- 岩体力学第六、七章 同济[精选].ppt
- 岘港[精选].doc
- 岩土工程勘察参考资料.doc
- 岗位观察表参照.doc
- 岩土工程勘察报告参考资料.doc
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
最近下载
- 单向板肋梁楼盖计算.docx
- 作业4:工学一体化课程《小型网络安装与调试》工学一体化课程考核方案.docx VIP
- 中国画之写意画.ppt VIP
- (2019苏教)小学科学三年级上册:全册整套教案资料.pdf
- 核心素养导向的高中数学课例设计研究与实践(样例)(1).doc
- 驾驶证延期委托书模板.doc
- 作业5:工学一体化课程《小型网络安装与调试》工学一体化课程终结性考核试题.docx VIP
- 作业5:工学一体化课程《小型网络安装与调试》工学一体化课程终结性考核试题.pdf VIP
- 中国画的构图形式ppt课件.pptx
- 作业11:《小型网络安装与调试》工学一体化课程教学进度计划表.pdf VIP
文档评论(0)