汇编语言中有如下定义:DATA DW 0204H,1000H;这个变量为什么没有“溢出”

DW定义的为字变量,2个字节16位存储,如果不考虑正负,8个字节能表示的最大16进制数是FF,而这个变量DATA赋值为0204H,1000H,显然不是16位可以存储的,为什么一个变量DATA,可以付给2个值?这难道是数组吗?如果我没说清的话,就请帮我解释DATA DW 0204H,1000H是什么意思?怎么存储的吧?谢谢了

    首先 DW 的含义是定义字型数据.DW 即 "Define Word"。

    在这里,使用DW定义了8个字型数据(数据之间用逗号分隔),它们所占的内存空间的大小为16个字节

    而DATA DW 0204H,1000H这条语句的含义并不是为DATA赋一个值,而是定义一段以字型为单位的内存空间

  例如

  DATA DW 1,2,3,4,5,6,7,8

       我们定义了一个具有8个字型数据的内存空间

 

  而8个字型数据在内存空间中的存储情况是这样的   

       DS:DATA 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00

    而DATA我们可以理解它就是一个指针,如果它在DW前面的话,那么我们就可以理解为DATA就指向DW所定义出来的内存空间

     

    例如   

    我们先定义DATA DW 1,2,3,4,5,6,7,8

  mov ax,data

  mov ds,ax

  mov bx,DATA    ;将DATA所指向的内存空间的首地址给bx

  mov ax,[bx]        ;将DS:DATA内存空间的字型数据给ax

       执行完后,ax = 0001H

 

 

  PS:若有不明白的地方,可以追问

 

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
相似回答