第3章第二部分 ARM指令
指令系统 指令是规定计算机进行某种操作的命令。 计算机能够执行的各种指令的集合称为指令系统 机器指令、伪指令和宏指令 机器指令能被处理器直接执行,而伪指令和宏指令不能。机器指令包括ARM指令集和Thumb指令集 ; 伪指令是在源程序汇编期间,由汇编编译器处理。其作用是为汇编程序完成准备工作; 宏指令在程序中用于调用宏,宏是一段独立的程序代码;在程序汇编时,对宏调用进行展开,用宏体代替宏指令。 ARM微处理器指令系统分类 ARM微处理器的指令集是加载/存储型(Load/Store)的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。 ARM微处理器的指令集可以分为六大类 : 跳转指令: b和bl 数据处理指令:完成寄存器中数据的算术和逻辑运算操作 程序状态寄存器(PSR)处理指令:mrs和msr 加载/存储(Load/Store)指令:唯一用于寄存器和存储器之间进行数据传送的指令 异常中断产生指令:swi和bkpt 协处理器指令 基本ARM指令共36条。 ARM指令的特点 所有指令都是32bit。 大多数指令都在单周期内完成。 所有指令都可以条件执行。 load/store体系结构。 指令集可以通过协处理器扩展 ARM指令集 典型的ARM指令语法格式为: Opcode{cond}{s} Rd, Rn{, Operand2} Opcode:指令操作码,又称指令助记符。如ADD表示算术加操作 指令 cond:指令的条件码,决定指令执行的条件域。如EQ,NE等。 S:决定指令的操作是否影响寄存器CPSR的值。1表示结果影响 CPSR,0表示结果不影响CPSR。 Rd:目标寄存器编码。如0101表示R5。 Rn:第一个操作数的寄存器编码。如0100表示R4。 Operand2:第2操作数。 ARM指令的编码格式 Cond:指令的条件码。 Opcode:指令操作码。 S:操作是否影响cpsr。 Rn:包含第一个操作数的寄存器编码。 Rd:目标寄存器编码。 Operand2:第2操作数。 注意:第二个操作数的使用方式Operand2 (1)立即数 在ARM指令中,灵活的使用第二个操作数能提高代码效率,第二个操作数的形式如下: #immed_8r 常数表达式,该常数必须对应8位位图,即常数是由一个8位的常数循环移位偶数位得到的。 合法的常量 0x3FC,0,0XF0000000,200,0XFF 不合法的常量 0x101,0x102,0xff1 注意:大于255的整数应能被4整除 常数表达式应用举例 MOV R0,#1; AND R1,R2,#0X0F; (2)寄存器方式 Rm 寄存器方式,在寄存器方式下操作数即为寄存器的数值。 举例: SUB R1,R1,R2; R1-R2-R1 MOV PC,R0 ; PC=R0,程序跳转到指定地址 LDR R0,[R1],-R2 ;读取R1地址上的存储器单元内容并存入 R0,且R1= R1-R2 (3) 寄存器移位方式 Rm,shift 寄存器移位方式,将寄存器的移位结果作为操作数,但Rm值保存不变,移位方式如下: ASR #n 算术右移n位 LSL #n 逻辑左移n位 LSR #n 逻辑右移n位 ROR #n 循环右移n位 RRX #n 带扩展的循环右移n ASR-Arithmetic Shift Right操作 ASR操作的格式为: 通用寄存器,ASR 操作 ASR可完成对通用寄存器中的内容进行右移的操作,按操作数所指定的数量向右移位,左端用第31位的值来填充,即移位过程中要保持符号位不变,若源操作数为正数,则最高有效位用0,负数用1。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。 MOV R0, R1, ASR#2 ;将R1中的内容右移两位后传送到R0中,左端用第31位的值来填充 LSL-Logical Shift Left(或ASL-Arithmetic Shift Left)操作 LSL操作的格式为: 通用寄存器,LSL 操作数 LSL可完成对通用寄存器中的内容进行逻辑的左移操作,按操作数所指定的数量向左移位,低位用零来填充。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。 MOV R0, R1, LSL#2 ;将R1中的内容左移两位后传送到R0中。 LSR操作的格式为: 通用寄存器,LSR 操作数 LSR可完成对通用寄存器中的内容进行右移的操作,
您可能关注的文档
最近下载
- 核医学教学课件:血液和淋巴显像.ppt VIP
- 重庆市各地方周氏支族源流(1-170支族).doc VIP
- 建筑工程质量管理体系流程图.docx
- 淋巴系统核医学检查课件.ppt VIP
- (高清版)B-T 6003.1-2022 试验筛 技术要求和检验 第1部分:金属丝编织网试验筛.pdf VIP
- (已压缩)TUCST007-2020房屋建筑与市政基础设施工程施工安全风险评估技术标准.docx VIP
- 2026年国家公务员考试申论真题及参考答案(考生回忆版).docx VIP
- 部编版语文二年级上册期中常考七大重点题型专项训练.docx VIP
- 机器人操作系统(ROS)及仿真应用 课件全套 第1--9章 Linux Ubuntu入门基础--- 基于ROS的服务机器人应用实例.ppt
- 压疮的预防及护理技术操作考核评分标准编辑.docx VIP
原创力文档

文档评论(0)