ARM指令 BCC什么意思?

ARM指令 BCC什么意思?,第1张

BCC是指CPSR寄存器条件标志位为0时的跳转。结合CMP R3, R1,意思是比较R3 R1寄存器,当相等时跳转到环测试。因为CMP指令减去两个值并在CPSR中设置条件标志位。

扩展资料:

当ARM跳转指令从当前指令向前或向后的32MB地址空间跳转时,这类跳转指令有以下4种:

(1)B 跳转指令

B〔条件) (地址)

B指令属于ARM指令集,是最简单的分支指令。一旦遇到一个B指令,ARM处理器将立即跳转到给定的地址,从那里继续执行。

(2)BL 带返回的跳转指令

BI,〔条件) (地址)

BL指令也属于ARM指令集,是另一个分支指令。就在分支之前,在寄存器R14中装载上R15的内容,因此可以重新装载R14到R15中来返回到这个分支之后的那个指令处执行,它是子例程的一个基本但强力的实现。

(3)BLX 带返回和状态切换的跳转指令

BLX <地址>

BLX指令有两种格式,第1种格式的BLX指令记作BLX(1)。BLX(1)从ARM指令集跳转到指令中指定的目标地址,并将程序状态切换到Thumb状态,该指令同时将PC寄存器的内容复制到LR寄存器中。

BLX(1)指令属于无条件执行的指令。

第2种格式的BLX指令记作BLX(2)。BLX(2)指令从ARM指令集跳转到指令中指定的目标地址,目标地址的指令可以是ARM指令,也可以是Thumb指令。目标地址放在指令中的寄存器<dest>中,该地址的bit[0]值为0,目标地址处的指令类型由CPSR中的T位决定。

(4)BX 带状态切换的跳转指令

BX(条件) (dest)

BX指令跳转到指令中指定的目标地址,目标地址处的指令可以是ARM指令,也可以是Thumb指令。目标地址值为指令的值和0xFFFFFFFE做“与” *** 作的结果,目标地址处的指令类型由寄存器决定。

参考资料:百度百科-ARM指令集

STR storage register 就是存储寄存器的意思,是将寄存器中的值存进内存中。LDR则是将内存单元中的值存入寄存器中。

STR lr, [sp, #-4]! 是将lr寄存器也称链接寄存器r14(用于保存子程序的返回地址)的值(32位)存入sp指向堆栈的地址,从sp到sp-3地址单元。感叹号是表示保存后sp的值跟着改变,及sp=sp-3,没有感叹号sp在使用结束后值不变。LDR那部分就不用解释了吧,应该很详细了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11152379.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存