ZHCUAV7Z september 1995 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
终止局部符号块
.newblock
.newblock 指令用于取消定义任何当前定义的局部标签。本质上,局部标签是临时标签;.newblock 指令用于对它们进行重置并终止其范围。
局部标签可以是 $n 形式,其中 n 可以是一个十进制数字,也可以是 name? 形式,而 name 是合法符号名称。与其他标签不同,局部标签供局部使用,不能用在表达式中。它们只能用作 8 位跳转指令中的操作数。局部标签不会出现在符号表中。
在定义和(或许)使用局部标签后,您应该使用 .newblock 指令来重置局部标签。.text、.data 和 .sect 指令也会重置局部标签。包含文件中定义的局部标签在包含文件之外无效。
有关局部标签用法的更多信息,请参阅节 4.8.3。
下面的示例展示了如何声明、重置和再重新声明局部标签 $1。
1 00000000 E3510000 LABEL1: CMP r1, #0
2 00000004 2A000001 BCS $1
3 00000008 E2900001 ADDS r0, r0, #1
4 0000000c 21A0F00E MOVCS pc, lr
5 00000010 E4952004 $1: LDR r2, [r5], #4
6 .newblock ; Undefine $1 to use again.
7 00000014 E0911002 ADDS r1, r1, r2
8 00000018 5A000000 BPL $1
9 0000001c E1F01001 MVNS r1, r1
10 00000020 E1A0F00E $1: MOV pc, lr