您的位置 首页 产品

ARM裸机开发笔记5ARM指令集

跳转指令:最简单的这届修改PC的值以下指令中可以完成从当前指令向前或向后的32M的地址空间的跳转B{条件}目标地址…

跳转指令:最简略的这届修正PC的值

以下指令中能够完结从当时指令向前或向后的32M的地址空间的跳转

B{条件} 方针地址 ;花括号一共条件,能够省掉

最简略的跳转指令,一旦遇到一个B指令,ARM处理器将当即跳转到给定的方针地址,从那里持续碑文

CMP R!,#0

BEQ Label ;EQ持平

当CPSR寄存器中的Z条件码方位时,程序跳转到标号Label处碑文

BL

BL{条件} 方针地址

跳转之前,会在寄存器R14中保存PC当时值。因而能够经过将R14的内容从头加载到PC中,来回来到跳转指令之后的那个指令处碑文。该指令是完结子程序调用的一个根本但常用的手法。

BLX

X一共跳转到指定地址的一起,将作业状况从ARM状况切换到Thumb状况,该指令一起将PC的当时内容保存到R14中

因而当子程序运用Thumb指令集,而调用者运用ARM指令集时,能够经过BLX指令完结子程序的调用和处理器作业状况,一起,子程序的回来能够经过将寄存器R14值到PC中来完结。

BX 跳转并切换状况

数据处理指令

MOV指令

MOV{条件}{S} 方针寄存器,源操作数 ———-》S加上可能会影响CPSR中的标志位。不加指令不更新CPSR。一般都不加。源操作数不能够是内存

MVN{条件}{S} 在传送之前把源操作数按位取反

CMP指令

TST指令 测验某一个位是否被设置了

TST R1,#%1 成果 ;用于测验在寄存器R1中是否设置了最低位(%一共二进制数)对操作数1与操作数2进行按位的与运算,成果为0 ,EQ位将被设置

LDR R5,=0xffffffff
TST R5,#(1<<23) ;当bit23位为1时,CPSR EQ位被设置

MOVEQ R5,#0x00 —->不碑文词语据,不满足EQ
MOVNE R5,#0x01

ADD指令 加

SUB指令 减

AND 逻辑与

ORR 逻辑或

BIC Rd,Rn,operand2 用于将Rn中的某些位清零。并把成果存放在Rd中,操作数operand2为32位的掩码,假如掩码设置了某一位为1,则铲除这一位。

B%&&&&&% R0,R0,#%1011 ;将R0的0,1,3位清零,其他位坚持不变。

MUL乘法指令

程序状况字的拜访指令

MRS{条件} 通用寄存器,程序状况寄存器(CPSR/SPSR)

将程序状况寄存器的内容传送到通用寄存器中

1.当需求改动程序状况寄存器内容时,可用MRS将程序状况寄存器的内容读入通用寄存器,修正后再写回程序状况寄存器。

2.当在反常处理或进程切换时,需求保存程序状况寄存器的值,可先用该指令读出程序状况寄存器的值,然后保存。

MRS R0,SPSR ;传送CPSR的内容到R0

MSR指令

MSR 程序状况寄存器(CPSR/SPSR)_<域> ,操作数

将操作数的内容传送到程序状况寄存器或其特定域中。其间操作数能够是通用寄存器或当即数。<域>用于设置程序状况寄存器中需求操作的位,32位的程序状况寄存器能够分为4个域

位为条件标志位,用f一共。位为状况域位,用s一共。为为扩展位域,用x一共。为为操控位域,用c一共

该指令一般用于或改动程序状况寄存器的内容,在运用时,一般要在MSR指令中指明酿制操作的域。

MSR CPSR,R0

MSR SPSR,R0 ;传送R0内容带SPSR

MSR CPSR_c,R0 ;传送R0到CPSR,但只是修正CPSR中的操控位域

拜访内存

寄存器和存储器之间传送数据

加载和存储指令

LDR 目地寄存器,<存储器地址>

从存储器中将一个32位数据传送到目地寄存器中

LDRB 意图寄存器,<存储器地址>

LDRB用于从存储器中将一个8位的字节数据传送到意图寄存器中,一起将寄存器的高24位清零。该指令一般用于从存储器中读取8位的字节数据到通用寄存器,然后对数据进行处理。

LDRH

和LDRB操作相似,是取一个16位的数据

STR 源寄存器,<存储器地址>

STR从源寄存器中将一个32为的字数据传到存储器中

批量加载存储指令

LDM

STM

数据交换指令

SWP

SWPB

移位指令(逻辑移位不考虑正负号,管用移位考虑正负号)

LSL  逻辑左移

ASL 管用左移

LSR 逻辑右移

ASR 管用右移

ROR 循环右移

反常发生指令

ARM支撑的反常发生指令有如下两条

SWI:软件中止指令

BKPT:断点中止指令

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部