嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
更新时间:2023-09-02 15:59:01 阅读量: 教育文库 文档下载
- 嵌入式推荐度:
- 相关推荐
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
机器指令、伪指令和宏指令COMPUTER SCIENCE AND TECHNOLOGY
机器指令:能被处理器直接执行,而伪指 令宏和宏指令不能。机器指令包括ARM 指令集和Thumb指令集 ; 伪指令:在源程序汇编期间,由汇编编译 器处理。其作用是为汇编程序完成准备工 作; 宏指令:在程序中用于调用宏,宏是一段 独立的程序代码;在程序汇编时,对宏调 用进行展开,用宏体代替宏指令。
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
ARM指令的编码格式COMPUTER SCIENCE AND TECHNOLOGY
实际指令语法格式为: ADDEQS R0,R1,R2; 该指令的编码格式为:27~25 24~21 20 19~16 15~12 11~~~~~~~~~~0
31~28
cond
opcode
S
Rn
Rd
op2
0000
001
0100
1
0001
0000
000000000010
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
ARM指令的助记符COMPUTER SCIENCE AND TECHNOLOGY
ARM指令在汇编程序中用助记符表示,一般 ARM指令的助记符格式为: <opcode>{<cond>} {S} <Rd>,<Rn>,<op2> 其中: <opcode> 操作码,如ADD表示算术加操作指令; {<cond>} 决定指令执行的条件域; {S} 决定指令执行是否影响CPSR寄存器的值; <Rd> 目的寄存器; <Rn> 第一个操作数,为寄存器; <op2> 第二个操作数。 例如,指令 ADDEQS R1,R2,#5
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
条件域<cond>COMPUTER SCIENCE AND TECHNOLOGY
几乎所有的ARM指令都可以根据当前程序状态寄 存器CPSR中标志位的值,有条件地执行。 ARM指令的条件域<cond>有16种类型。cond EQ NE CS CPSR中标志位 Z置位 Z清零 C置位 相等 不相等 无符号数大于或等于 含义
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
CCMI PL VS VC HI LS GE LT GT LE AL
C清零N置位 N清零 V置位 V清零 C置位Z清零 C清零Z置位 N等于V N不等于V Z清零且(N等于V) Z置位或(N不等于V) 忽略
无符号数小于负数 正数或零 溢出 未溢出 无符号数大于 无符号数小于或等于 带符号数大于或等于 带符号数小于 带符号数大于 带符号数小于或等于 无条件执行
依版本不同,定义不同
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
寻址方式COMPUTER SCIENCE AND TECHNOLOGY
9种: 立即数寻址 寄存器寻址 寄存器移位寻址 寄存器间接寻址 基址变址寻址 相对寻址 多寄存器寻址 块拷贝寻址 堆栈寻址
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
立即数寻址COMPUTER SCIENCE AND TECHNOLOGY
在立即数寻址中,操作数本身直接在指令中给出, 取出指令也就获得了操作数,这个操作数也称为 立即数。 #后接0x或&表示十六进制数,0b表示二进制数, 0d或缺省表示十进制数。 例: ADD R0,R1,#5; MOV R0,#0x55; R0=R1+5 R0=0x55
其中:操作数5,0x55就是立即数,立即数在指令 中要以“#”为前缀,后面跟实际数值。
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
寄存器寻址COMPUTER SCIENCE AND TECHNOLOGY
在寄存器寻址方式下,寄存器的值即为操作数。 ARM指令普遍采
用此种寻址方式。 例: ADD R0,R1,R2 MOV R0,R1 ; ; R0=R1+R2 R0=R1
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
寄存器移位寻址COMPUTER SCIENCE AND TECHNOLOGY
寄存器移位寻址的操作数由寄存器的数值做相应 移位而得到。 移位的方式在指令中以助记符的形式给出,而移 位的位数可用立即数或寄存器寻址方式表示。 例: ADD R0,R1,R2,ROR #5 ;R0=R1+R2循环右移5位 MOV R0,R1,LSL R3 ;R0=R1逻辑左移R3位 移位操作在ARM指令集中不作为单独的指令使用, ARM指令集共有5种位移操作。
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
ARM指令集的5种位移操作COMPUTER SCIENCE AND TECHNOLOGY
LSL逻辑左移 :Rx,LSL <op1> LSR逻辑右移 : Rx,LSR <op1> ASR算术右移 :Rx,ASR <op1>
31
0 0
31 0
0
31
0
ROR循环右移 :Rx,ROR <op1>31 0
RRX带扩展的循环右移:Rx,RRX31 C 0
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
寄存器间接寻址COMPUTER SCIENCE AND TECHNOLOGY
寄存器中的值为操作数的物理地址,而实际的操作 数存放在存储器中。 例: STR R0,[R1] LDR R0,[R1] ; ; [R1]=R0 R0=[R1]
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
基址变址寻址COMPUTER SCIENCE AND TECHNOLOGY
将寄存器(称为基址寄存器)的值与指令中给出 的偏移地址量相加,所得结果作为操作数的物理 地址。 例: LDR R0,[R1,#5] ; LDR R0,[R1,R2] ; R0=[R1+5] R0=[R1+R2]
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
相对寻址COMPUTER SCIENCE AND TECHNOLOGY
相对寻址同基址变址寻址相似,区别只是将程序 计数器PC作为基址寄存器,指令中的标记作为地 址偏移量。 例: BEQ process1 …… process1 ……
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
多寄存器寻址COMPUTER SCIENCE AND TECHNOLOGY
在多寄存器寻址方式中,一条指令可实现一组寄 存器值的传送。 连续的寄存器间用“-”连接,否则用“,”分 隔。
例: LDMIA
R0,{R1-R5} ;R1=[R0],R2=[R0+4],R3=[R0+8] ;R4=[R0+12],R5=[R0+16]
指令中IA表示在执行完一次Load操作后,R0自增 4。该指令将以R0为起始地址的5个字数据分别装 入R1,R2,R3,R4,R5中。
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
块拷贝寻址COMPUTER SCIENCE AND TECHNOLOGY
块拷贝寻址可实现连续地址数据从存储器的某一 位置拷贝到另一位置。 例: LDMIA R0,{R1-R5}; STMIA R1,{R1-R5}; 第一条指令从以R0的值为起始地址的存储单元中 取出5个字的数据,第二条指令将取出的数据存入 以R1的值为起始地址的存储单元中。 实际上是多寄存器寻址的组合。
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
堆栈寻址COMPUTER SCIENCE AND TECHNOLOGY
堆栈寻址用于数据栈与寄存器组之间批量数据 传输。 当数据写入和读出内存的顺序不同时,使用堆 栈寻址可以很好的解决这问题。 例: STMFD R13!,{R0,R1,R2,R3,R4}; LDMFD R13!,{R0,R1,R2,R3,R4} 第一条指令,将R0-R4中的数据压入堆栈, R13为堆栈指针; 第二条指令,将数据出栈,恢复R0-R4原先的 值。
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
ARM指令集COMPUTER SCIENCE A
ND TECHNOLOGY
6种类型(53种主要助记符) : 数据处理指令(22种主要助记符) 跳转指令(4种主要助记符) Load/Store指令(16种主要助记符) 程序状态寄存器指令(2种主要助记符) 协处理器指令(5种主要助记符) 软件中断指令 (2种主要助记符)
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
数据处理指令1COMPUTER SCIENCE AND TECHNOLOGY
1.MOV 数据传送指令 格式:MOV{<cond>}{S} <Rd>,<op1>; 功能:Rd=op1 op1可以是寄存器、被移位的寄存器或立即数。 例如: MOV R0,#5 ;R0=5 MOV R0,R1 ;R0=R1 MOV R0,R1,LSL#5 ;R0=R1左移5位
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
数据处理指令2COMPUTER SCIENCE AND TECHNOLOGY
2.MVN 数据取反传送指令 格式:MVN{<cond>}{S} <Rd>,<op1>; 功能:将op1表示的值传送到目的寄存器Rd中, 但该值在传送前被按位取反,即Rd=!op1; op1可以是寄存器、被移位的寄存器或立即数。 例如: MVN R0,#0 ;R0=-1
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )
数据处理指令3COMPUTER SCIENCE AND TECHNOLOGY
3.ADD 加法指令 格式:ADD{<cond>}{S} <Rd>,<Rn>,<op2>; 功能:Rd=Rn+op2 op2可以是寄存器,被移位的寄存器或立即数。 例如: ADD R0,R1,#5 ;R0=R1+5 ADD R0,R1,R2 ;R0=R1+R2 ADD R0,R1,R2,LSL#5 ;R0=R1+R2左移5位
正在阅读:
嵌入式系统(第3-2章 ARM寻址方式与指令系统 )09-02
穆棱风电场2016年工作思路05-24
三环与四环立交桥监理细则07-03
最新审定北师大版六年级数学上册第二次月考试题(带答案)06-05
中国城市模型行业市场调查研究报告(目录)08-26
普陀山旅游路线09-16
中国共产党思想政治教育史讲稿12-06
重归于好作文400字07-10
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 系统
- 寻址
- 指令
- 嵌入式
- 方式
- ARM
- 2015年中国房地产估价行业现状及其前景预测分析
- 2019中考英语九全Unit3_4阅读重点单词回扣练习人教新目标版
- 财务案例分析教学作业答案
- 24小时内出院病历
- 医院科室工作量统计表
- 教育管理学试卷及答案
- 国旗下的讲话活动总结
- win7安装步骤详解
- 高血压患者春节饮食注意事项
- 2019年7月中央电大本科《外国文学专题》期末考试试题及答案
- 台湾高校交换生项目常见问答
- 酒店大堂设计说明
- 历年高考英语单选:名词与冠词
- 泗洲南路竣工验收汇报资料
- 广州深圳考察报告
- 中国食品包装机行业市场前景分析预测报告(目录)
- 2016-2022年中国电子衡器行业分析及发展机遇研究报告
- 2019年妇女儿童发展规划中期评估报告
- 七年级数学知识点总结 相交线与平行线 三角形和多边形平面直角坐标系与描述二元一次方程组和不等式不等式组
- 2012年沪科版初中数学七年级上1.2数轴练习卷(带解析)