LENGTHOF 运算符计算数组中元素的个数,元素个数是由数组标号同一行出现的数值来定义的。示例如下:
.data
byte1 BYTE 10,20,30
array1 WORD 30 DUP (?),0,0
array2 WORD 5 DUP(3 DUP(?))
array3 DWORD 1,2,3,4
digitStr BYTE "12345678",0
如果数组定义中出现了嵌套的 DUP 运算符,那么 LENGTHOF 返回的是两个数值的乘积。下表列出了每个 LENGTHOF 表达式返回的数值。
表达式 | 值 | 表达式 | 值 |
---|---|---|---|
LENGTHOF byte1 | 3 | LENGTHOF array3 | 4 |
LENGTHOF array1 | 30+2 | LENGTHOF digitStr | 9 |
LENGTHOF array2 | 5*3 |
如果数组定义占据了多个程序行,那么 LENGTHOF 只针对第一行定义的数据。比如有如下数据,则 LENGTHOF myArray 返回值为 5 :
myArray BYTE 10,20,30,40,50
BYTE 60,70,80,90,100
另外,也可以在第一行结尾处用逗号,并在下一行继续进行数组初始化。若有如下数据定义, LENGTHOF myArray 返回值为 10:
myArray BYTE 10,20,30,40,50,
60,70,80,90,100