汇编语言中有如下定义:DATA DW 0204H,1000H;这个变量为什么没有“溢出”
DW定义的为字变量,2个字节16位存储,如果不考虑正负,8个字节能表示的最大16进制数是FF,而这个变量DATA赋值为0204H,1000H,显然不是16位可以存储的,为...
DW定义的为字变量,2个字节16位存储,如果不考虑正负,8个字节能表示的最大16进制数是FF,而这个变量DATA赋值为0204H,1000H,显然不是16位可以存储的,为什么一个变量DATA,可以付给2个值?这难道是数组吗?如果我没说清的话,就请帮我解释DATA DW 0204H,1000H是什么意思?怎么存储的吧?谢谢了
展开
1个回答
展开全部
首先 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:若有不明白的地方,可以追问
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询