LENGTH是属于析值操作符之一,也称为数值回送操作符,原因是这些操作符把一些特征或存储器地址的一部分作为数据返回。length的用法:length 变量名 。作用是返回利用dup定义的数组中的元素个数,即重复操作符dup前的count值。
例如有 varw db 1234h | buffer db 10 dup (0)
length varw ;返回1给cx length buffer; 返回 10 给cx
其他的析值操作符还有:
1、seg 变量或者标号;返回变量所在段号或者标号的偏移量
2、offset 变量或者标号 ;返回变量或者标号的偏移量
3、type 变量或者标号; 返回变量或者标号的类型,类型使用数值对应关系如下:db(1), dw(2), dd(4), near(-1), far(-2)
4、size 变量或者标号; 返回dup定义数组占用的字节数。与length类似
格式为:LENGTH Variable
对于变量中使用DUP的情况,汇编程序将回送分配给该变量的单元数.而对于其他情况则回送1.
例:
FESS DW 100 DUP(0)
对于指令MOV CX,LENGTH FESS
汇编程序将其形成为:MOV CX,100
ARRAY DW 1,2,3
对于指令MOV CX,LENGTH ARRAY
汇编程序将其形成为:MOV CX,1
TABLE DB ‘ABCD’
对于指令MOV CX,LENGTH TABLE
汇编程序将其形成为:MOV CX,1
以上参考来源:https://wenwen.sogou.com/z/q657535205.htm
LENGTH返回数组变量的元素个数,也就是返回DUP()前面的数值,如果没有数值,则返回1。
还可参考