您的位置首页生活百科

汇编语言指令LENGTH是什么意思

汇编语言指令LENGTH是什么意思

LENGTH为伪指令,语句意义为取数组元素个数。

其作用为:计算数组中元素的个数,元素个数是由数组标号同一行出现的数值来定义的。

其作为伪指令的特点:

1、由于是伪“指令”,因而它只存在于汇编语言中。高级语言中不叫指令,叫语句;

2、由于是“伪”指令,也即“假”指令,因而不是可执行指令,不会产生机器代码,不会占用ROM空间,只用于汇编过程中为汇编程序提供汇编信息。

扩展资料:

1、元素个数是由数组标号同一行出现的数值来定义的。如果数组定义中出现了嵌套的 DUP 运算符,那么 LENGTHOF 返回的是两个数值的乘积。

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

下表列出了每个 LENGTHOF 表达式返回的数值。

2、如果数组定义占据了多个程序行,那么 LENGTHOF 只针对第一行定义的数据。比如有如下数据,则 LENGTHOF myArray 返回值为 5 :

myArray BYTE 10,20,30,40,50

BYTE 60,70,80,90,100

3、另外,也可以在第一行结尾处用逗号,并在下一行继续进行数组初始化。若有如下数据定义, LENGTHOF myArray 返回值为 10:

myArray BYTE 10,20,30,40,50,

60,70,80,90,100

TOP=1

.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

TOP的值等于STA的长度,这里STA的长度为1,即TOP的值为1

LENGTH一般加在数组变量的前面,作用是计算数组变量所占存储单元的个数。若使用DUP,则执行结果是外层DUP的给定值;若没有使用DUP,则执行结果为1.

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类似