- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第5章ARM处理器的指令系统华清远见
ARM指令的寻址方式ARM指令集ARM汇编语言伪指令ARM指令系统简介
1ARM指令系统简介
ARM指令分类ARMv8指令体系包括AArch32和AArch64两种类型指令集合,AArch32指令主要目的是向下兼容ARMv7指令系统的。而每种指令集合中又包括ARM和Thumb两种不同的指令集。当处理器工作在ARM状态时,执行ARM指令集(以下简称ARM指令)。不管是AArch32指令还是AArch64指令,所有的ARM指令均为32位宽度,指令以字对齐的方式保存在存储器中,而所有的Thumb指令都是16位宽度,指令均以半字对应的方式保存在存储器中。
ARM指令编码格式典型的ARM指令语法格式如下,指令中各部分的含义,如表5-1所示。{label:*}{opcode{s}{dest{,source1{,source2{,source3}}}}}注意:花括号是可选的标识符NoteLabel标签Opcode操作码,也叫助记符,说明指令需要执行的操作类型S条件码设置项,决定本次指令执行是否影响PSTATE寄存器响应状态位值Dest目标寄存器,用于存放指令的执行结果。Source1第一个源操作数Source2第二个源操作数Source3第三个源操作数
ARM指令条件码域ARM指令中支持的所有的条件码操作码条件助记符标志位含义0000EQZ==1相等0001NEZ==0不相等0010CSC==1无符号的大于或等于0011CCC==0无符号小于0100MIN==1负数0101PLN==0正数或零0110VSV==1溢出0111VCV==0没有溢出1000HIV==1Z==0无符号数大于1001LS!(C==0Z==1)无符号数小于或等于1010GEN==V有符号数大于或等于1011LTN!=V有符号数小于1100GTZ==0N==V有符号数大于1101LE!(Z==1N!=V)有符号数小于或等于1110无(AL)任意无条件执行1111无(NV)任意无条件执行
2ARM指令的寻址方式
数据处理指令寻址方式数据处理指令的基本语法格式:opcode{S}Xd,Xn,shifter_operand其中,shifter_operand有11种形式,如表所示。语法寻址方式1#immediate立即数寻址2Xm寄存器寻址3Xm,LSL#shift_imm立即数逻辑左移4Xm,LSLRs寄存器逻辑左移5Xm,LSR#shift_imm立即数逻辑右移6Xm,LSRRs寄存器逻辑右移7Xm,ASR#shift_imm立即数算术右移8Xm,ASRRs寄存器算术右移9Xm,ROR#shift_imm立即数循环右移10Xm,RORRs寄存器循环右移11Xm,RRX寄存器扩展循环右移
立即数寻址方式AArch64汇编语言不要求使用“#”符号引入立即数,但汇编程序必须允许这样做。在AArch64汇编语言中在立即数前边可以加“#”符号,也可以不加“#”符号。为了提高代码的可读性,AArch64反汇编程序都会在立即数前边添加一个“#”号。下面是一些应用立即数的指令:MOVX0,#0xFF //将0xFF赋值给X0ADDX1,X1,#1 //X1=X1+1CMPX7,#2000 //将X7寄存器中的值和2000比较ORRX9,X1,#0xFF//将X1中的[7:0]位置1,结果写到X9中或者MOVX0,0xFF //将0xFF赋值给X0ADDX1,X1,1 //X1=X1+1CMPX7,2000 //将X7寄存器中的值和2000比较ORRX9,X1,0xFF //将X1中的[7:0]位置1,结果写到X9中
寄存器寻址方式寄存器的值可以被直接用于数据操作指令,这种寻址方式是各类处理器经常采用的一种方式,也是一种执行效率较高的寻址方式,举例如下。MOVX2,X0 //X0的值赋值X2ADDX4,X3,X2 //X2加X3,结果赋值X4CMPX7,X8 //比较X7和X8的值
寄存器移位寻址方式寄存器的值在被送到ALU之前,可以事先经过桶形移位寄存器的处理。预处理和移位发生在同一周期内,所以有效地使用移位寄存器,可以增加代码的执行效率。下面是一些在指令中使用了移位操作的例子。ADDX2,X0,X1,LSR#5//X1中的值右移5位,X0加X1,结果赋值给X2MOVX1,
您可能关注的文档
- 5G通信大数据分析与应用_王苏南扫一扫看教学课件:第6章 位置信息大数据分析.pptx
- Access 2010数据库应用技术第2章.doc
- Access 2010数据库应用技术第3章.doc
- Access 2010数据库应用技术第4章.doc
- Access 2010数据库应用技术第6章.doc
- Access 2010数据库应用技术第7章.doc
- Access 2010数据库应用技术第9章.doc
- Access 2016数据库技术与应用Access 数据库技术与应用_ch1.pptx
- Access 2016数据库技术与应用Access 数据库技术与应用_ch2.pptx
- Access 2016数据库技术与应用Access 数据库技术与应用_ch4.pptx
- ARM嵌入式体系结构与接口技术(Cortex-A53版)第6章 ARM汇编语言程序设计.pptx
- ARM嵌入式体系结构与接口技术(Cortex-A53版)第7章 ARMv8异常处理及编程.pptx
- ARM嵌入式体系结构与接口技术(Cortex-A53版)第11章 PWM定时器与”看门狗“定时器.pptx
- ARM嵌入式体系结构与接口技术(Cortex-A53版)第12章 AD转换器.pptx
- Axure RP 9互联网产品原型设计(慕课版)6第六章 使用母版和动态面板.pptx
- Axure RP 9互联网产品原型设计(慕课版)项目2 了解Axure RP 9 教案.docx
- BIM技术与应用——Revit 2023建筑与结构建模1第一章 BIM概述.pptx
- BIM技术与应用——Revit 2023建筑与结构建模10第十章 楼板与屋顶.pptx
- BIM技术与应用——Revit 2023建筑与结构建模12第十二章 材质.pptx
- BIM技术与应用——Revit 2023建筑与结构建模17第十七章 综合案例.pptx
原创力文档


文档评论(0)