4.8.4. TBB 和 TBH

表跳转字节或表跳转半字。

语法

TBB [Rn, Rm]
TBH [Rn, Rm, LSL #1]

其中:

Rn

是基址寄存器。 此寄存器用于存放跳转长度表的地址。 Rn 不能为 r13。

如果将 Rn 指定为 r15,则所用的值将为指令地址加 4。

Rm

是索引寄存器。 用于存放到跳转长度表的索引。

Rm 不能为 r15 或 r13。

运算

这些指令可利用单字节偏移表 (TBB) 或半字偏移表 (TBH) 来产生相对于 PC 的向前跳转。 Rn 可提供指向表的指针,而 Rm 可提供指向表的索引。 跳转长度是从表返回的字节值 (TBB) 或半字值 (TBH) 的两倍。

说明

在 Thumb-2EE 中,如果基址寄存器中的值为零,则代码将跳转到位于 HandlerBase - 4 的 NullCheck 处理程序处执行。

体系结构

这些 32 位 Thumb 指令可用于 ARMv6T2 及更高版本。

这些指令没有 ARM 或 16 位 Thumb 版本。

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IC
Non-Confidential