北航微机原理第5讲 arm指令系统(2)

上传人:ji****en 文档编号:107691055 上传时间:2019-10-20 格式:PDF 页数:47 大小:622.24KB
返回 下载 相关 举报
北航微机原理第5讲 arm指令系统(2)_第1页
第1页 / 共47页
北航微机原理第5讲 arm指令系统(2)_第2页
第2页 / 共47页
北航微机原理第5讲 arm指令系统(2)_第3页
第3页 / 共47页
北航微机原理第5讲 arm指令系统(2)_第4页
第4页 / 共47页
北航微机原理第5讲 arm指令系统(2)_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《北航微机原理第5讲 arm指令系统(2)》由会员分享,可在线阅读,更多相关《北航微机原理第5讲 arm指令系统(2)(47页珍藏版)》请在金锄头文库上搜索。

1、微机原理与接口技术微机原理与接口技术 第5讲 ARM指令系统(2) 内容回顾内容回顾 2013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片)2 3.2 指令的寻址方式指令的寻址方式 寻址方式寻址方式: 处理器如何根据指令中给出的处理器如何根据指令中给出的地址码地址码字字 段来实现寻找段来实现寻找真实操作数地址真实操作数地址的方式的方式。 操作数可能在操作数可能在: 指令中直接给出指令中直接给出(立即数立即数) 寄存器寄存器 内存单元内存单元 32013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 3.2 指令的寻址方式指令的

2、寻址方式 ARM处理器具有处理器具有8种基本寻址方式种基本寻址方式。 1.寄存器寻址;2.立即寻址; 3.寄存器移位寻址;4.寄存器间接寻址; 5.基址(变址)寻址;6.多寄存器寻址; 7.堆栈寻址;8.相对寻址。 42013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 连连看连连看 5 MOV R1,R2 MOVR0,#0xFF000 MOVR0,R2,LSL #3 寄存器移位寻址寄存器移位寻址 立即寻址立即寻址 寄存器寻址寄存器寻址 LDR R0,R2 LDRR2,R3,#0x0C 基址基址(变址变址)寻址寻址 多寄存器寻址多寄存器寻址 LDMIA R1

3、!,R2-R4,R6 LDMFA R0,R1-R4 堆栈寻址堆栈寻址 寄存器间接寻址寄存器间接寻址 BLSUBR1 相对寻址相对寻址 2013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 补充介绍补充介绍 大小端模式 存储器内容查看 编译器内存数据查看 62013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 补充补充(1)- Big endian else b+; 对应的汇编代码( a存于R0,b存于R1): CMPR0,R1;R0与R1比较 ADDHI R0,R0,#1 ;若R0R1,则R0=R0+1 ADDLS R1,

4、R1,#1 ;若R0R1,则R1=R1+1 示例: 152013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 3.3 ARM指令集指令集 本节分3部分内容: 3.3.1 指令格式 3.3.2 条件码 3.3.3 ARM指令 162013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 3.3.3 ARM指令指令 为什么要掌握部分常用ARM指令? 熟悉熟悉ARMARM体系结构体系结构:通过指令的学习可以更深入的了 解ARM硬件结构的特点; 修改启动代码修改启动代码:启动代码为了满足大部分系统的顺 利运行,通常将系统硬件配置在最低

5、性能,通过调整 启动代码中的参数使其更适合自己的硬件系统; 调试程序调试程序:通过观察反汇编代码了解程序执行情况 ,比如某个变量的执行是否符合实际逻辑。 172013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 3.3.3 ARM指令指令 ARM指令种类 1.存储器访问指令 2.数据处理指令 3.乘法指令 4.ARM分支指令 5.协处理器指令 6.杂项指令 7.伪指令 182013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 3.3.3 ARM指令指令 ARM指令种类 1.存储器访问指令 2.数据处理指令 3.乘法指令 4

6、.ARM分支指令 5.协处理器指令 6.杂项指令 7.伪指令 192013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 3.3.3 ARM指令指令 ARM指令集存储器访问指令 【本课程所讲ARM指令,均为ARM7指令。】 ARM处理器是典型的RISC处理器,对存储器的 访问只能使用加载和存储指令实现。ARM处理器是 冯诺依曼存储结构,程序空间、RAM空间及I/O映 射空间统一编址,除对RAM操作以外,对外围IO、 程序数据的访问均要通过加载/存储指令进行。 存储器访问指令分为单寄存器操作指令和多寄 存器操作指令。 202013/11/20微机原理与接口技术微

7、机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) LDR/STR指令用于对内存变量的访问、内 存缓冲区数据的访问、查表、外围部件的控制 操作等。 若使用LDR指令加载数据到PC寄存器,则 实现程序跳转功能,这样也就实现了程序散转。 所有单寄存器加载/存储指令可以实现字、 (无符号/有符号)半字、(无符号/有符号) 字节的操作。 3.3.3 ARM指令指令 ARM存储器访问指令单寄存器存取 212013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 3.3.3 ARM指令指令 ARM存储器访问指令单寄存器存取 装载指令:LDR目标寄存器目标寄存器, , 源地址源

8、地址 存储指令:STR源寄存器源寄存器, ,目标地址目标地址 存储器 源地址目标寄存器 存储器 目标地址源寄存器 222013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 3.3.3 ARM指令指令 ARM存储器访问指令单寄存器存取 装载指令:LDR 存储指令:STR x x LDR/STR指令搭配不同的后 缀实现不同方式的单寄存器 存取操作: 字/半字(H)/字节(B)控制 是/否用户模式(T)控制 无/有符号(S)控制 232013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 助记符助记符说明说明操作操作条件码位置条件

9、码位置 LDR Rd,addressing 加载字字数据 Rdaddressing, addressing索引 LDRcond LDRB Rd,addressing 加载无符号字节字节数据 Rdaddressing, addressing索引 LDRcondB LDRT Rd,addressing以用户模式用户模式加载字数据 Rdaddressing, addressing索引 LDRcondT LDRBT Rd, addressing 以用户模式用户模式加载无符号无符号 字节数据 Rdaddressing, addressing索引 LDRcondBT LDRH Rd, addressing

10、 加载无符号半字无符号半字数据 Rdaddressing, addressing索引 LDRcondH LDRSB Rd, addressing 加载有符号字节有符号字节数据 Rdaddressing, addressing索引 LDRcondSB LDRSH Rd, addressing加载有符号半字有符号半字数据 Rdaddressing, addressing索引 LDRcondSH ARM存储器访问指令装载指令 242013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 助记符助记符说明说明操作操作条件码位置条件码位置 STR Rd, addressi

11、ng 存储字字数据 addressingRd, addressing索引 STRcond STRBRd,addressing 存储字节字节数据 addressingRd, addressing索引 STRcondB STRTRd,addressing 以用户模式用户模式存储字数据 addressingRd, addressing索引 STRcondT STRBT Rd,addressing 以用户模式用户模式存储字节字节数 据 addressingRd, addressing索引 STRcondBT STRHRd,addressing 存储半字半字数据 addressing Rd, addre

12、ssing索引 STRcondH ARM存储器访问指令保存指令 252013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) ARM存储器访问指令地址形式 装载指令:LDR目标寄存器, 源地址 保存指令:STR源寄存器, 目标地址 立即数:立即数可以是一个无符号的数值。这个数据可以 加到基址寄存器,也可以从基址寄存器中减去这个数值。 如:LDR R1,R0,#0x12 寄存器:寄存器中的数值可以加到基址寄存器,也可以从 基址寄存器中减去这个数值。 如:LDR R1,R0,R2 寄存器及移位常数:寄存器移位后的值可以加到基址寄存 器,也可以从基址寄存器中减去这个数

13、值。 如:LDR R1,R0,R2,LSL #2 262013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) ARM存储器访问指令寻址方式 装载指令:LDR目标寄存器, 源地址 保存指令:STR源寄存器, 目标地址 零偏移:如:LDR Rd,Rn 前索引偏移:如:LDR Rd,Rn,#0x04! 程序相对偏移:如:LDR Rd,labe1 后索引偏移:如:LDR Rd,Rn,#0x04 注意注意:大多数情况下,必须保证字数据操作的地址是32位对齐的。 272013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 0x55R2 R

14、5 0x40000000 0x12345678 0x40000000 存储器 地址 应用示例: LDRR2,R5;将R5指向地址的字数据存入R2 0x12345678 ARM存储器访问指令单寄存器转载应用 282013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 0x12345678R1 R2 0x40000000 0x? 0x40000004 存储器 地址 应用示例: STRR1,R2,#0x04;将R1的数据存储到R0+0x04地址 0x12345678 +4 ARM存储器访问指令单寄存器保存应用 292013/11/20微机原理与接口技术微机原理与接口

15、技术(基于嵌入式芯片基于嵌入式芯片) 3.3.3 ARM指令指令 ARM存储器访问指令多寄存器存取 多寄存器加载/存储指令可以实现在一组寄存器 和一块连续的内存单元之间传输数据。LDM为加载 多个寄存器;STM为存储多个寄存器。允许一条指 令传送16个寄存器的任何子集或所有寄存器。它们 主要用于现场保护、数据复制、常数传递等。 302013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 3.3.3 ARM指令指令 ARM存储器访问指令多寄存器存取 装载指令:LDM源地址,目标寄存器列表 存储指令:STM目标地址,源寄存器列表 存储器 源地址 目标寄存器1 目标寄存器n 存储器 目标地址源寄存器1 源寄存器n 312013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) 3.3.3 ARM指令指令 ARM存储器访问指令多寄存器存取 装载指令:LDM 存储指令:STM x x LDM/STM指令搭配不同 的后缀实现不同方式地 址增长方式: IA: 每次传送后地址加4 IB: 每次传送前地址加4 DA:每次传送后地址减4 DB:每次传送前地址减4 322013/11/20微机原理与接口技术微机原理与接口技术(基于嵌入式芯片基于嵌入式芯片) ARM存储器访问指令多

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号