ARM汇编程序指南:跳转指令详解

需积分: 0 51 下载量 199 浏览量 更新于2024-08-09 收藏 5.66MB PDF 举报
"该文档是‘跳转指令-三菱通讯协议参考手册’,主要涵盖了ARM汇编中的跳转指令集,包括B、BL、BX、BLX和BXJ等,这些指令用于实现程序流程的控制转移。此外,还提到了与零比较并跳转的CBZ和CBNZ指令,以及表跳转字节或半字的TBB和TBH指令。该文档属于RealView编译工具系列,适用于3.1版,由ARM Limited出版,版权为2002-2007年。文档警告未经许可不得复制或修改其中内容,并且ARM不对使用文档信息导致的任何损失负责。文档还强调了产品状态可能随时间发展变化,且非保密,但使用和复制可能受限于特定协议。" 在ARM汇编语言中,跳转指令是程序控制流的关键部分,它们允许程序在执行过程中改变执行路径。B指令是无条件跳转指令,它将程序计数器(PC)更新为指令后的立即数,从而转移到新的地址。BL指令是带链接的跳转,除了跳转外,还会保存返回地址到LR(link register)寄存器,便于函数调用后返回原位置。BX指令则是用来交换处理器模式,比如从用户模式切换到系统模式,同时跳转到指定的地址。BLX和BXJ指令扩展了这些功能,支持Jazelle技术,Jazelle是一种ARM处理器的Java加速器。 CBZ和CBNZ是条件跳转指令,它们基于累加器A的值与零的比较结果来决定是否跳转。如果A等于零,CBZ会跳转;如果A不等于零,CBNZ则执行跳转。这些指令常用于循环结构和条件分支。 TBB和TBH指令则涉及表跳转,它们用于根据当前PC的下一条字节或半字的值作为索引,从表中查找并跳转到相应地址。这些指令在查表操作和基于索引的程序流程中非常有用。 这个手册是RealView编译工具的一部分,是为开发者提供汇编编程指导的参考资料,包括如何使用这些跳转指令以及其他的汇编语言元素。虽然文档的详细内容没有完全给出,但可以推测,它会详细解释每条指令的语法、使用场景和可能的副作用,帮助程序员更高效地编写和优化ARM架构下的汇编代码。