2017年新款小学校服:arm 跳转指令
来源:百度文库 编辑:偶看新闻 时间:2024/10/02 16:58:23
1.跳转指令 在ARM中有两种方式可以实现程序的跳转:一种是刀‘转指令;另一种是直接向PC寄存器(R15)中写入目标地址值。 通过直接向PC寄存器中写入目标地址值可以实现在46B地址空间中任意跳转,这种跳转指令又称为长跳转。如果在长跳转指令之前使用MOV LR,PC等指令,则可以保存将来返回的地址值,这样就实现了在46B地址空间中的子程序调用。 在ARM版本5及以上的体系中,实现了ARM指令集和Thumb指令集的混合使用。指令使用目标地址值的bit[0]来确定目标程序的类型。bit[0]的值为1时,目标程序为Thumb指令;bit[0]值为0时,目标程序为ARM指令。 在ARM版本5以前的体系中,传送到PC寄存器中的目标地址值的低两位bits[1∶0]被忽略,跳转指令只能在ARM指令集中执行,即程序不能从ARM状态切换到Thumb状态。非T系列ARM版本5体系不含Thumb指令,当程序试图切换到Thumb状态时,将产生未定义指令异常中断。 ARM跳转指令可以从当前指令向前或向后的32MB地址空间跳转。这类跳转指令有以下4种。 (1)B 跳4专指令 B〔条件) (地址) B指令属于ARM指令集,是最简单的分支指令。一旦遇到一个B指令,ARM处理器将立即跳转到给定的地址,从那里继续执行。注意:存储在分支指令中的实际值是相对当前R15的值的一个偏移量,而不是一个绝对地址。它的值由汇编器来计算,是24位有符号数,左移两位后有符号扩展为32位,表示的有效偏移位为26位(+/- 32 MB)。 (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指令。目标地址放在指令中的寄存器中,该地址的bit[0]值为0,目标地址处的指令类型由CPSR中的T位决定。该指令同时将PC寄存器的内容复制到LR寄存器中。 (4)BX 带状态切换的跳转指令 BX(条件) (dest) BX指令跳转到指令中指定的目标地址,目标地址处的指令可以是ARM指令,也可以是Thumb指令。目标地址值为指令的值和0xFl·FFFFFF做“与”操作的结果,目标地址处的指令类型由寄存器决定。转自百科
x86指令集同ARM指令集的主要区别
指令SJMP rel的跳转范围是----?
ARM指令集中SMLAL及UMLAL指令中的加法进位是如何处理的?
PLC中跳转指令的功能及作用?
一条arm 指令如何判断其操作数是有符号数还是无符号数?
arm in arm是什么意思?
CPU中的指令跳转功能,用什么硬件实现的,难不难?
masm32汇编的编译过程中~跳转指令什么情况被编译成间接寻址跳转~什么情况是直接寻址?~
ARM单片机
什么是arm?
什么是ARM
什么是arm
什么是ARM
ARM处理器
什么是ARM
什么是arm
什麼是 arm
在FLASH MX中,若要跳转到指定场景的指定帧开始播放,可以使用什么指令?
在Flash MX 2004中,若要跳转到指定场景的指定帧开始播放,可使用( )指令。
3. 在Flash MX 2004中,若要跳转到指定场景的指定帧开始播放,可使用( )指令。
在Flash MX 2004中,若要跳转到指定场景的指定帧开始播放可使用什么指令
在Flash MX 2004中,若要跳转到指定场景的指定帧开始播放,可使用( )指令。
8051单片机里的"AJMP LOOP"指令是不是程序一执行到这里时就自动跳转到标号为"LOOP"的指令?
8051单片机里的"AJMP LOOP"指令是不是程序一执行到这里时就自动跳转到标号为"LOOP"的指令??