ARM开发入门学习———ARM汇编指令集

本文详细介绍了ARM指令集中的一些基本指令,包括数据传送如MOV、MVN、LDR,算数运算如ADD、SUB、MUL,比较与跳转指令如CMP、B、BL,以及位操作指令如AND、ORR、EOR、BIC。此外,还涉及了内存访问、栈操作、状态寄存器的读写等关键概念,为理解ARM处理器的底层工作原理提供了基础。
摘要由CSDN通过智能技术生成

MOV:mov指令意思将操作2的值赋值给目标寄存器

MVN:mvn指令意思是将操作2取反的值给目标寄存器

LDR:ldr是一个伪指令,当给寄存器赋的值不是一个合法的立即数时,这个时候我们就不能使用mov和mvn指令来进行操作了,必须使用ldr指令来完成

算数指令:

add:将操作数1和操作数2相加的结果给目标寄存器

sub:将操作数1和操作数2相减的结果给目标寄存器

mul:将操作数1和操作数2相乘的结果给目标寄存器(操作数1和2都必须是寄存器,并且操作数1的寄存器编号不能和目标寄存器一样)

比较指令:

cmp 寄存器,操作数2 (NE不相等,EQ相等,GT大于,LT小于,GE大于等于,LE小于等于)

跳转指令:

b:b指令是直接跳转到lable处执行

bl:bl指令是直接保存下一条指令的地址到lr,并跳转到lable处执行

位运算指令:

AND:将操作数1按位与操作数2的结果存放在目标寄存器

ORR:将操作数1按位或操作数2的结果存放在目标寄存器

EOR:将操作数1按位异或操作数2的结果存放在目标寄存器

BIC:将操作数1按位与操作数2取反的结果存放在目标寄存器(目标寄存器=操作数1 & ~操作数2)

单寄存器数据传送:

ldr:将内存中的值加载到寄存器(读内存)  ldr r0,[r1]

str:将寄存器的内容写入内存(写内存) str r0,[r1]

基址变址寻址:将基地址寄存器加上指令中给出的偏移量,得到数据存放的地址

前索引:STR r0,[r1,#4]        LDR r0,[r1,#4]

后索引:STR r0,[r1],#4        LDR r0,[r1],#4

自动索引:STR r0,[r1,#4]!    LDR r0,[r1,#4]!

多个数据访问:

LDM:将一块内存的数据,加载到多个寄存器中

STM:将多个寄存器的值,存储到一块内存

栈操作指令:

进栈     stmfd sp!, {寄存器列表}

出栈     ldmfd sp!,  {寄存器列表}

MRS:将状态寄存器的值,读到通用寄存器中

MSR:将通用寄存器的值写入到状态寄存器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值