正在加载图片...
内容提要 ·ARM指令集 -ARM指令集分类与指令格式 ARM指令集 -ARM指令的寻址方式 -ARM指令集详解 -Thumb:指令及应用 李曦 ·ARM汇编程序设计基础 llxx@ustc.edu.cn 一系统初始化 调试环境 lboousic.edu.cn 5.1ARM微处理器的指令集概述 ARM指令集 5.1,IARM微处理器的指令的分类与格式 ·跳转指令: ·Load-store结构 -B 转指令。 带延回的蛛转折令。 BLX 带问和状态切换的洗转折令。 带状态切换的转指令。 ·指令分类 ·数据处理指令 ◆数据处理指令一使用和改变寄存器的值 位测试指令 ◆数据传送指令-把存储器的值拷贝到寄存器中(1oad)或 2 TEQ 相等测试折令 饰进位 把寄存器中的值拷贝到存储器中(stor©) 法指令 ◆拉制流指今 EOR 辑异支折令 BIC 位清除折令 上分支 。乘法指令与乘加指令 一分支和链接。保存返回的地址,以恢复最先的次序 MLA >陪入系统代玛 ◆程序状态寄存器(PSR)处理指令 程序状态寄存器存取指令 。RS程序状态寄存器到通用寄存的数据传送指令。 ◆协处理器指令 一MSR通用酱存器到程序状态寄存器的数据传送指令。 ◆异常产生指令 .edu.cn 37m .edu.cn /77 ARM指令集(续) 5.1.2指令的条件域 ·寄存器加载存储指令: LDB字节数据加我指令 ·所有的ARM指合都可以条件执行 R字数据加我指令 一DR半字数据加载指令 STR字数据存储指令 ST阳 字数据存储指令 妻整的执行5香取决于CPSR寄存器的N乙,CaaV际 ST连续数据存储指令 -所有的Thumb指合都可以解压成全部条件指 ·数据交换指令: -SP字数据交换指令 SPB字节数据交换指令 每一条ARM指令包含4位的条件码,位于指令的最高4位 ·移位元指令: [31:28] ,条件码共有16种 每种条件码可用两个字符表 S1辑左移 ASL算术左移 示,这两个字符可以添加在指今助记符的后面和指今同时 一LSR辑右移 ASR算术右移 使用, 0R循环右移 即贴带扩充的循环右移 -例如,跳转指合B可以加上后缀EQ变为BEQ表示“相等 ·协处理器指令 则跣转”,即当CPSR中的Z标志置位时发生跳转。 -P协处理器数据操作指令 -山C协处理署数据如我指令 -STC协处理器数据存指令 -RA处理器寄存器到协处理器寄存器的数据传送指令 -RC协处理器寄存器到A处理器寄存器的数据传送指令 ·在16种条件标志码中,只有15种可以使用 577ARM指令集 李曦 llxx@ustc.edu.cn llxx@ustc.edu.cn 2/77 内容提要 • ARM指令集 – ARM指令集分类与指令格式 – ARM指令的寻址方式 – ARM指令集详解 – Thumb指令及应用 • ARM汇编程序设计基础 – 系统初始化 – 调试环境 llxx@ustc.edu.cn 3/77 5.1 ARM微处理器的指令集概述 5.1.1 ARM微处理器的指令的分类与格式 • Load-store结构 • 指令分类 数据处理指令 – 使用和改变寄存器的值 数据传送指令 – 把存储器的值拷贝到寄存器中 (load)或 把寄存器中的值拷贝到存储器中(store) 控制流指令 分支 分支和链接, 保存返回的地址,以恢复最先的次序 陷入系统代码 程序状态寄存器(PSR)处理指令 协处理器指令 异常产生指令 llxx@ustc.edu.cn 4/77 ARM指令集 • 跳转指令: – B 跳转指令。 BL 带返回的跳转指令。 – BLX 带返回和状态切换的跳转指令。 BX 带状态切换的跳转指令。 • 数据处理指令 – MOV 数据传送指令 MVN 数据取反传送指令 – CMP 比较指令 CMN 反值比较指令 – TST 位测试指令 TEQ 相等测试指令 – ADD 加法指令28 ADC 带进位加法指令 – SUB 减法指令 SBC 带借位减法指令 – RSB 逆向减法指令 RSC 带借位的逆向减法指令 – AND 逻辑与指令 ORR 逻辑或指令 – EOR 逻辑异或指令 BIC 位清除指令 • 乘法指令与乘加指令 – MUL 32 位乘法指令 MLA 32 位乘加指令 – SMULL 64 位有符号数乘法指令 SMLAL 64 位有符号数乘加指令 – UMULL 64 位无符号数乘法指令 UMLAL 64 位无符号数乘加指令 • 程序状态寄存器存取指令 – MRS 程序状态寄存器到通用寄存器的数据传送指令。 – MSR 通用寄存器到程序状态寄存器的数据传送指令。 llxx@ustc.edu.cn 5/77 ARM指令集(续) • 寄存器加载/存储指令 : – LDR 字数据加载指令        LDRB 字节数据加载指令 – LDRH 半字数据加载指令         STR 字数据存储指令 – STRB 字节数据存储指令         STRH 半字数据存储指令 – LDM 连续数据加载指令        STM 连续数据存储指令 • 数据交换指令 : – SWP 字数据交换指令         SWPB 字节数据交换指令 • 移位元指令: – LSL 逻辑左移      ASL 算术左移 – LSR 逻辑右移          ASR 算术右移 – ROR 循环右移          RRX 带扩充的循环右移 • 协处理器指令 – CDP 协处理器数据操作指令 – LDC 协处理器数据加载指令 – STC 协处理器数据存储指令 – MCR ARM处理器寄存器到协处理器寄存器的数据传送指令 – MRC 协处理器寄存器到ARM处理器寄存器的数据传送指令 llxx@ustc.edu.cn 6/77 • 所有的ARM指令都可以条件执行 – 指令的执行与否取决于CPSR寄存器的N, Z, C and V标 志位 – 所有的Thumb指令都可以解压成全部条件指令 • 每一条ARM指令包含4位的条件码,位于指令的最高4位 [31:28]。条件码共有16种,每种条件码可用两个字符表 示,这两个字符可以添加在指令助记符的后面和指令同时 使用。 – 例如,跳转指令B可以加上后缀EQ变为BEQ表示“相等 则跳转”,即当CPSR中的Z标志置位时发生跳转。 • 在16种条件标志码中,只有15种可以使用。 31 28 0 Cond 5.1.2 指令的条件域
向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有