您的位置 首页 分销

ARM微处理器的指令集概述一——ARM使用系统开发详解笔记

ARM微处理器的指令集概述ARM指令集是加载/存储型的,就是说指令集仅仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存…

ARM微处理器指令集概述

ARM指令集是加载/存储型的,便是说指令集仅仅能处理寄存器中的数据,并且处理结果都要放回寄存器中,而对体系存储器的拜访则需求经过专门的加载/存储指令来完结。

ARM微处理器的指令集能够分为六大类

跳转指令、数据处理指令、程序状况寄存器(PSR)处理指令、加载/存储指令、协处理器指令和反常产生指令。

一 指令的条件域

当处理器作业在ARM状况时,简直一切的指令均依据CPSR中条件码的状况和指令的条件域有条件的碑文。当指令的碑文条件分量时,指令被碑文,不然指令被疏忽。每一条ARM指令包括4位的条件码,坐落指令的最高4位[31:28]。条件码共有16种,每种条件码可用两个字符一共,这两个字符能够添加在指令助记符的后边和指令一起运用。
例如,跳转指令B能够加上后缀EQ变为BEQ一共“持平则跳转”,即当CPSR中的Z标志置位时产生跳转。

在16种条件标志码中,只需15种能够运用。

二 ARM 指令的寻址方法

当即寻址

当即寻址也叫当即数寻址,这是一种特别的寻址方法,操作数自身就在指令中给出,只需取出指令也就取到了操作数。

寄存器寻址

寄存器寻址便是使用寄存器中的数值作为操作数

寄存器直接寻址

寄存器直接寻址便是以寄存器中的值作为操作数的地址,而操作数自身存放在存储器中。

基址变址寻址

基址变址寻址便是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,然后得到一个操作数的有用地址。变址寻址方法常用于拜访某基地址邻近的地址单元。例:

LDR R0,[R1,#4] ;R0←[R1+4]
LDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+4
LDR R0,[R1] ,#4 ;R0←[R1]、R1←R1+4
LDR R0,[R1,R2] ;R0←[R1+R2]

多寄存器寻址

选用多寄存器寻址方法,一条指令能够完结多个寄存器值的传送。这种寻址方法能够用一条指令完结传送最多 16 个通用寄存器的值。例

LDMIA R0,{R1,R2,R3,R4}
;R1←[R0]
;R2←[R0+4]
;R3←[R0+8]
;R4←[R0+12]

相对寻址

与基址变址寻址方法相相似,相对寻址以程序计数器 PC 的当时值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有用地址。
BL NEXT ;跳转到子程序 NEXT 处碑文

仓库寻址

ARM 微处理器支撑四种类型的仓库作业方法,即:
– 满递加仓库:仓库指针指向最终压入的数据,且由低地址向高地址生成。
– 满递减仓库:仓库指针指向最终压入的数据,且由高地址向低地址生成。
– 空递加仓库:仓库指针指向下一个酿制放入数据的空方位,且由低地址向高地址生成。
– 空递减仓库:仓库指针指向下一个酿制放入数据的空方位,且由高地址向低地址生成。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/264006.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部