ARM微处理器的指令集
来源:互联网 发布:网络男歌手排行榜 编辑:程序博客网 时间:2024/04/26 17:27
。跳转指令
。数据处理指令
。程序状态寄存器(PSR)处理器
。加载、存储指令
。协处理器指令
。异常产生指令
ADC 带进位加法指令
ADD 加法指令
AND 逻辑与指令
B 跳转指令
BIC 位清零指令
BL 带返回的跳转指令
BLX 返回和状态跳转指令
BX 带状态切换的跳转指令
CDP 协处理器数据操作指令
CMN 比较反值指令
CMP 比较指令
EOR 异或指令
LDC 存储器到协处理器数据传输指令
LDM 加载多个寄存器指令
LDR 存储器到寄存器的数据传输指令
MCR 从ARM 寄存器到协处理寄存器的数据传输指令
MLA 乘加运算指令
MOV 数据传送指令
MRC 从协处理器寄存器到ARM 寄存器的数据传输指令
MRS 传送CPSR 或SPSR 的内容到通用寄存器指令
MUL 32位乘法指令
MVF 传送值到浮点数寄存器
MVN 数据取反传送指令
ORR 逻辑或指令
RSB 逆向减法指令
RSC 带借位的逆向减法指令
SBC 带借位减法指令
STC 协处理器寄存器写入存储器指令
STM 批量内存字写入指令
STR 寄存器到寄存器的数据传输指令
SUB 减法指令
SWI 软件中断指令
TEQ 相等测试指令
TST 位测试指令
ARM 指令的立即数寻址是一种特殊的寻址方式,操作数本身就在指令中给出,只要取
出指令也就取到了操作数。这个操作数被称为立即数。
ADD r0,ro,#1 ; r0 <- r0 + 1
add r0,r0,#0x3A ;r0 <-- r0 + 0x3A
在以上2条指令中,第2 个源操作数即为立即数,实际使用时以“#”符号为前缀。
add r0,r1,r2 ; r0 <-r1 + r2;
该指令的执行效果是将寄存器R1和R2 的内容相加,其结果存放在寄存器R0中。
3.寄存器间接寻址
寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器
中
add r0,r1,[r2] ; r0 <--r1 +[r2]
LDR r0,[r1] ;r0 <--[r1]
在第 1 条指令中,以寄存器R2 的内容作为操作数的地址,然后与R1 相加,其结果存入
寄存器R0 中。
第 2 条指令将以R1 的值为地址的存储器中的内容送到寄存器R0 中。
4.基址变址寻址
基址变址的寻址方式就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给
出的地址偏移量相加,从而得到一个操作数的有效地址
LDR R0,[R1,#0x0A] ;R0←[R1 + 0x0A]
LDR R0,[R1,#0x0A]! ;R0←[R1 + 0x0A]、R1←R1 + 0x0A
在第 1 条指令中,将寄存器R1 的内容加上0x3A形成操作数的有效地址,将该地址处的
操作数送到寄存器R0 中。
在第 2 条指令中,将寄存器R1 的内容加上0x0A形成操作数的有效地址,从而取得操作
数存入寄存器R0 中,然后,R1 的内容自增0x0A个字节。
5.多寄存器寻址
采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用
一条指令完成传送最多16 个通用寄存器的值
LDMIA R0,{R1,R2,R3,R4} ;R1←[R0]
;R2←[R0 + 4]
;R3←[R0 + 8]
;R4←[R0 + 12]
该指令的后缀IA表示在每次执行完加载/存储操作后,R0 按字长度增加,因此,指令可
将连续存储单元的值传送到R1~R4。
6.相对寻址
与基址变址寻址方式相类似,相对寻址以程序计数器PC 的当前值为基地址,指令中的
地址标号作为偏移量,将两者相加之后得到操作数的有效地址。比如下面的程序段完成子程
序的调用和返回,跳转指令BL采用了相对寻址方式。
7.堆栈寻址
堆栈是一种数据结构,按FILO 的工作方式,使用一个称堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。
根据堆栈生成方式,堆栈又可以分为递增堆栈(Ascending stack)和递减堆栈(decending stack),当堆栈由低地址想告地状生成是,称为递增堆栈;
(1)满递增堆栈:堆栈指针指向最后压入的数据,并且堆栈以递增方式向上生成。
(2)满递减堆栈:堆栈指针指向最后压入的数据,并且堆栈以递减方式向下生成。
(3)空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址
生成。
(4)空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址
生成。
- ARM微处理器的指令集
- ARM 嵌入式微处理器指令集(上)
- ARM 嵌入式微处理器指令集(下)
- ARM微处理器的指令集概述(一)——ARM应用系统开发详解笔记
- ARM微处理器的指令集概述(二)——ARM应用系统开发详解笔记
- ARM微处理器的指令集概述(三)—— .word的含义
- ARM微处理器的指令集概述(四)——MOV和LDR的区别
- ARM微处理器的指令的分类与格式
- ARM微处理器的指令集概述(序)——学习方法
- ARM微处理器的指令集概述(五)—— LDR和ADR分析
- ARM微处理器的指令系统
- ARM微处理器的指令系统
- ARM 微处理器的分类
- ARM微处理器的指令系统
- ARM微处理器的指令系统
- ARM微处理器的指令系统
- ARM微处理器的体系结构
- ARM 微处理器的数据类型
- 说说字符集和编码(个人感觉写的通俗易懂)
- imagesearchimage.com上线
- ListView项(Item)的三种布局使用例子
- 看老外的Meego手机设计
- 对中文字段的查询(sql 2000)
- ARM微处理器的指令集
- Andrew Koenig 的一些建议 C++沉思录
- 部署linux系统
- 有种朋友,,很喜欢,,但就是不能追
- 很平静
- jquery 自定义属性
- 编译 android 2.1 (eclair) 源码 For HTC G1
- Linux下如何利用Sendmail构建安全可靠的邮件服务器(在家实验成功)
- 我在CSDN的第一篇文章