ARM Cortex-M3 B[x]指令分析
发布时间:2021-12-16 16:17:17 所属栏目:教程 来源:互联网
导读:B指令 B指令的格式为: B{条件} 目标地址 B指令是最简单的跳转指令。一旦遇到一个 B 指 令,ARM 处理器将立即跳转到给定的目标地址,从那里继续执行。注意存储在跳转指令中的实际值是相对当前PC值的一个偏移量,而不是一个绝对地址,它的值由汇编器来 计算(
B指令 B指令的格式为: B{条件} 目标地址 B指令是最简单的跳转指令。一旦遇到一个 B 指 令,ARM 处理器将立即跳转到给定的目标地址,从那里继续执行。注意存储在跳转指令中的实际值是相对当前PC值的一个偏移量,而不是一个绝对地址,它的值由汇编器来 计算(参考寻址方式中的相对寻址)。它是 24 位有符号数,左移两位后有符号扩展为 32 位,表示的有效偏移为 26 位(前后32MB的地址空间)。以下指令: B Label ;程序无条件跳转到标号Label处执行 CMP R1,#0 ;当CPSR寄存器中的Z条件码置位时,程序跳转到标号Label处执行 BEQ Label 举例: B ResetHandler; //复位 B . B . . 表示当前地址。 B . 跳转到当前地址。意思是说进入死循环当中。 通过 B BL BLX BX 可以完成在当前指令向前或者向后32MB的地址空间的跳转(为什么是32MB呢?寄存器是32位的,此时的值是24位有符号数,所以32MB)。B是最简单的跳转指令。要注意的是,跳转指令的实际值不是绝对地址,而是相对地址——是相对当前PC值的一个偏移量,它的值由汇编器计算得出。BL非常常用。它在跳转之前会在寄存器LR(R14)中保存PC的当前内容。 BL的经典用法如下: bl NEXT ; 跳转到NEXT …… NEXT …… mov pc, lr ; 从子程序返回。 ![]() (编辑:我爱故事小小网_铜陵站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |