ZHCU875Z August 2001 – October 2023 SM320F28335-EP
终止局部符号块
.newblock
.newblock 指令用于取消定义任何当前定义的局部标签。本质上,局部标签是临时标签;.newblock 指令用于对它们进行重置并终止其范围。
局部标签可以是 $n 形式,其中 n 可以是一个十进制数字,也可以是 name? 形式,而 name 是合法符号名称。与其他标签不同,局部标签供局部使用,不能用在表达式中。它们只能用作 8 位跳转指令中的操作数。局部标签不会出现在符号表中。
在定义和(或许)使用局部标签后,您应该使用 .newblock 指令来重置局部标签。.text、.data 和 .sect 指令也会重置局部标签。包含文件中定义的局部标签在包含文件之外无效。
有关局部标签用法的更多信息,请参阅节 4.8.3。
下面的示例展示了如何声明、重置和再重新声明局部标签 $1。
1 .ref ADDRA, ADDRB, ADDRC
2 0076 B .set 76h
3
4 00000000 F800! MOV DP, #ADDRA
5
6 00000001 8500! LABEL1: MOV ACC, @ADDRA
7 00000002 1976 SUB ACC, #B
8 00000003 6403 B $1, LT
9 00000004 9600! MOV @ADDRB, ACC
10 00000005 6F02 B $2, UNC
11
12 00000006 8500! $1 MOV ACC, @ADDRA
13 00000007 8100! $2 ADD ACC, @ADDRC
14 .newblock ; Undefine $1 to use again.
15
16 00000008 6402 B $1, LT
17 00000009 9600! MOV @ADDRC, ACC
18 0000000a 7700 $1 NOP