- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
chapter3_ARM7TDMI指令系统
西安邮电学院 计算机系 第3章ARM7TDMI指令系统 机器指令/汇编指令/汇编器 精简指令集计算机(RISC)vs 复杂指令集计算机 (CISC); ARM处理器基于 (RISC)原理设计; ARM7TDMI(-S)支持32位ARM指令集和16位Thumb指令集; ARM指令集功能全,但是代码密度低;而Thumb指令集具有较高的代码密度,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。 所有的ARM指令都是可以有条件执行的,而Thumb指令仅有一条指令具备条件执行功能。 ARM程序和Thumb程序可相互调用,相互之间的状态切换开销几乎为零。 3.1 ARM7TDMI编程模型 编程模型就是程序员看到的计算机工作模型。编程模型屏蔽了计算机硬件的具体细节,是计算机硬件在工作原理层和编程应用层的抽象模型。它既屏蔽了硬件电路的细节,又准确细致地表示了计算机的工作原理和过程。 3.1 ARM7TDMI编程模型 ARM处理器的指令系统; ARM处理器的寄存器模型; 3.2 ARM7TDMI的寻址方式 ARM7寻址方式的分类; ARM7数据处理指令操作数寻址方式; 存储器访问指令操作数寻址方式; 1. 立即数寻址方式 这种寻址方式的操作数直接包含在指令中,也就是说,取出指令的同时也就取出了对应的操作数(这样的操作数称为立即数操作数,简称为立即数)。 MOV R0, #0 ; 将立即数0送入R0 SUB R0, R0, #1 ; R0的值减立即数1,然后将结果送回R0 MOV R0, #0xFF000 ; 将立即数0xFF000送入R0 2.寄存器寻址方式 当指令执行的操作数是ARM处理器某个寄存器中的数据时,在指令中直接指定该寄存器,使用其中的数据作为操作数,这种寻址方式称为寄存器寻址方式。 MOV R0, R1 ; 将R1中的值送入R0 SUB R0, R1, R2 ; 将R1中值减去R2的值,结果保存到R0 3.寄存器移位寻址方式 寄存器移位寻址是ARM指令集特有的寻址方式:ARM指令中源寄存器操作数在送往ARM ALU(算术逻辑单元)执行时,先经过桶形移位处理的方式。目的是为了增加代码的执行效率。 MOV R0, R1, LSL #3 ; R1的值逻辑左移3位,结果放入R0, ;无溢出时,即是R0=R1×8 MOV R0, R1, ROR R2 ; R1的值循环右移R2位,然后放入R0 AND R0, R1, R2, LSL R3 ; R2的值逻辑左移R3位,再和R1的值相“与”, ; 结果放入R0 4.寄存器间接寻址 5.基址变址寻址 基址变址寻址就是将作为基地址的寄存器(简称为基址寄存器)中的内容与指令中给出的地址偏移量相加,形成操作数的存储器地址的一种寻址方式。 基址变址寻址用于访问基址附近的存储单元,常用于查表、数组操作、功能部件寄存器访问等。 基址变址寻址方式又分为基址加偏移量和基址加索引两种寻址方式: ①基址加偏移量 LDR R0, [R1, #0x0C] ; 将R1+0x0C所指向的存储器单元 ; 内容加载到R0中 STR R0, [R1, #-4]! ; 将R0中的值存储到R1-4所指向的存储器; ; 单元中,然后R1= R1-4 ②基址加索引 LDR R0, [R1, R2] ; 将R1+R2指向的存储器单元内容 ; 加载到R0中 STR R0, [R1, R2, LSL #1] ; 将R0的值保存到R1+R2×2 ; 所指向的存储器单元中 6.相对寻址 Start MOV R0, #0 MOV R1, #3 MOV R2, #2 BL arithfunc ... ... ; 其它指令 arithfunc CMP R0, #num MOVHS PC, LR 7.多寄存器寻址(块拷贝寻址) 7.多寄存器寻址(块拷贝寻址) 8.堆栈寻址 ARM7 之 CPSR 条件标志位(N、Z、C、V) ARM7处理器指令系统概述 LSL 逻辑左移 LSR 逻辑右移 ASR 算术右移 ROR 循环右移 RRX 带扩展的循环右移 ARM指令分类介绍 3.4.2 ARM存储器访问指令 ARM处理器是典型的RISC处理器,对存
文档评论(0)