- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 4.3.2 ARM 汇编语言中的表达式和运算符 4.逻辑表达式 逻辑表达式一般由逻辑量、逻辑运算符和括号构成,其表达式的运算结果为真或假。与逻辑表达式相关的运算符有“=”、“”、“”、“=”、“= ”、“/=”、“ ” 运算符和“LAND”、“LOR”、“LNOT”及“LEOR”运算符。 4.3 ARM 汇编语言的语句格式 * 4.3.2 ARM 汇编语言中的表达式和运算符 5.程序或寄存器相关表达式 寄存器相关表达式的值等于指定寄存器的值加上或减去一个数字表达式。 程序相关表达式的值等于程序计数器PC的值加上或减去一个数字表达式的值。此种表达式通常由程序中的标号与一个数字表达式组成。 下面的例子说明了程序或寄存器相关表达式的基本使用方法。 LDR r4,=data+4*n ;n 是汇编时取值变量 ; code MOV pc,lr data DCD value0 ; n-1 个DCD 伪操作 DCD valuen ;data+4*n 指向此 ;更多DCD伪操作 4.3 ARM 汇编语言的语句格式 * 4.3.2 ARM 汇编语言中的表达式和运算符 6.汇编中的操作符 (1)操作符的优先级 在汇编语言程序设计中,表达式包含一个扩展的操作符集,这些操作符和高级语言中的运算符十分接近。其运算次序遵循如下的优先级。 ① 优先级相同的双目运算符的运算顺序为从左到右。 ② 相邻的单目运算符的运算顺序为从右到左,单目运算符的优先级高于其他运算符。 ③ 括号运算符的优先级最高。 汇编语法的操作符优先级和C语言中的不完全相同。例如在汇编中,下面的汇编语言(1+2∶SHR∶3)相当于(1+(2∶SHR∶3)),而在C语言中,运算则变为((1+2)3)=0。类似于这样的操作,在使用时要特别注意。 为了保证表达式运算结果的正确,建议使用“()”来避免异义。 4.3 ARM 汇编语言的语句格式 * 4.3.2 ARM 汇编语言中的表达式和运算符 汇编操作符的优先级以及对应的C语言运算符 上表是按操作符的优先级从上到下排列的。 4.3 ARM 汇编语言的语句格式 * 4.3.2 ARM 汇编语言中的表达式和运算符 (2)单目运算,最高优先级的单目运算在表达式中最先被计算。单目操作符写在操作数的前面。运算顺序为从右到左。 4.3 ARM 汇编语言的语句格式 * 4.3.2 ARM 汇编语言中的表达式和运算符 (3)双目运算,ARM汇编中将双目运算符放在两个操作数中间。一般情况下,双目运算的优先级低于单目运算。下面将以操作符的优先级为序分别介绍各操作符。 乘法相关操作符包括乘、除、取模运算,在双目运算中具有最高优先级 字符串相关操作符 移位操作符。移位操作中两个操作数均为数字表达式 4.3 ARM 汇编语言的语句格式 * 4.3.2 ARM 汇编语言中的表达式和运算符 加减运算操作符 关系操作符 逻辑操作符 4.3 ARM 汇编语言的语句格式 * 4.3.3 ARM 汇编语言内置的变量 ARM汇编器中定义了一些内置变量,这些内置变量不能使用伪指令设置(如,SETA、SETL、SETS等),一般用于程序的条件汇编控制。 下面的例子显示了如何使用内置变量控制程序的执行流程。 If {CONFIG}=16 ;若为Thumb代码则执行If后的语句 ;codes else ;codes endif b ;程序结束 4.3 ARM 汇编语言的语句格式 * 下面介绍由ARM汇编器预定义的内置变量。 ? {ARCHITECTURE}:选定的ARM体系结构的值,如3,3M,4,4T ? {AREANAME}:当前段名。 ? {ARMASM_VERSION}:ARM编译器ARMASM的变量号。 ? |ads$version|:ARM编译器ARMASM的变量号,同{ARMASM_VERSION}。 ? {CODESIZE}:如果当前指令为ARM指令,该内置变量取值为32,如果当前指令为Thumb指令,该内置变量取值为16,同{CONFIG}。 ? {COMMANDLINE}:当前命令行内容。 ? {CONFIG}:如果当前指令为ARM指令,该内置变量取值为32,如果当前指令为Thumb指令,该内置变量取值为16,同{CODESIZE}。 ? {CPU}:所使用的CPU名称。默认为ARM7TDMI。如果在编译命令行中使用“-CPU”选项确定CPU类型,则该值
您可能关注的文档
最近下载
- LNGT88J永磁合金工艺研究.docx VIP
- 最校苏教版五年级数学同步思维训练(上册).pdf VIP
- 外研版高中英语选择性必修一Unit-3-The-road-to-success.pptx VIP
- 众兴菌业培训课件.pptx VIP
- 房地产市场年报-2020年天津市房地产市场年报.pdf VIP
- 1. 香港公司註冊證明書.pdf VIP
- 【港交所-2025研报】卓能(集团) 截至二零二四年十二月三十一日止六个月中期业绩报告.pdf VIP
- 2025四川内江市隆昌市兴晟产业投资集团有限公司招聘13人考试备考题库及答案解析.docx VIP
- ISO9001、ISO14001、ISO45001三标一体内部审核检查表.pdf VIP
- 2019年天津房地产市场回顾及2020年展望 .pdf VIP
文档评论(0)