首页 > 编程知识 正文

单片机无条件转移指令,汇编语言js指令

时间:2023-05-04 04:00:50 阅读:106311 作者:2291

1、b )无条件转移

b命令是最简单的跳转命令。 B指令发出时,ARM处理器会立即跳到指定的目标地址,然后继续执行。 请注意,转移指令中存储的实际值是相对于当前PC值的偏移,而不是绝对地址,并且该值由汇编程序计算。

例如: B级; 程序无条件地跳转到标签Label并执行

2、BL )为了调用子程序而传送并连接,返回地址被存储在LR中

BL指令为带连接跳转,跳转前PC的当前内容会保存在寄存器R14中,因此通过将R14的内容重新加载到PC中,可以返回跳转指令的该指令处并执行。 该命令是实现子程序调用的基本,但也是常用的手段。 通常可以在子程序的末尾添加: MOV PC、LR使其返回

以下命令:

bl标签; 当程序无条件地跳转到Label并执行时,同时将当前的PC值保存在R14中

BX )带状态切换的跳转BX指令使程序跳转到指令指定的地址并执行程序。

BLX )带连接和状态切换的跳转BLX指令是BX和BL功能的组合,BLX指令从ARM指令集跳转到指令指定的目标地址,将处理器的动作状态从ARM状态切换到Thumb状态。 该命令同时将PC的当前内容保存在寄存器R14中。 因此,在子程序使用Thumb指令集且调用方使用ARM指令集的情况下,BLX指令可以实现子程序的调用和处理器操作状态的切换。

子程序的返回可以将寄存器R14的值复制到PC上。

最基本的无条件跳转命令有两个。

B级; 跳到Label的相应地址

BX reg; 跳到寄存器reg中给定的地址

调用子程序时,必须保存返回地址。 正确的命令如下。

bl标签; 跳转到Label对应的地址,将跳转前的下一个指令地址保存到LR

BLX reg; 跳转到寄存器reg中给定的地址,根据reg的LSB切换处理器的状态,

; 迁移前的以下命令地址也保存在LR中

执行这些命令后,返回地址存储在lr(r14 )中,可以以“BX LR”等形式返回。

注:

R14 :连接寄存器(LR ) )。

R15 :程序计数器(PC ) )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。