+ -
当前位置:首页 → 问答吧 → 新手关于length与size

新手关于length与size

时间:2011-11-23

来源:互联网

书上说length返回变量的个数,size返回变量的字节数,size=length*type,
如果这么理解的话 buff dw 5 dup(1,2),length返回的值应该是10,size返回的值应该是20
可是我编程实验了一下,length返回的是5,size返回的是10,难道书上说错了?
VB code
data    segment
        buff    dw 5 dup (1,2)
        x       dw length buff
        y       dw size buff
data    ends

stack   segment
        db 100 dup(?)
stack   ends

code    segment
        assume cs:code,ds:data,ss:stack
start:  mov dx,data
        mov ds,dx
        mov ax,x
        mov bx,y
        mov ax,4c00h
        int 21h
code    ends
        end start


作者: guqian110   发布时间: 2011-11-23

引用楼主 guqian110 的回复:
书上说length返回变量的个数,size返回变量的字节数,size=length*type,
如果这么理解的话 buff dw 5 dup(1,2),length返回的值应该是10,size返回的值应该是20
可是我编程实验了一下,length返回的是5,size返回的是10,难道书上说错了?

VB code
data segment
buff dw 5……

如果DUP(0),也就是就一个目的话,LENGTH 应该为5,TYPE应该为2,SIZE应该为10,教科书说的公式是针对这种情况的。可是你使用了dup(1,2),情况不同了,等于扩大了一倍。
你的发现还是有意义的。

作者: gsy999   发布时间: 2011-11-23