注册 登录
编程论坛 汇编论坛

关于段数据存储问题

czhoujun 发布于 2005-09-23 12:43, 918 次点击

DATA1 SEGMENT ;定义数据段DATA1 word1 DW 5678h byte1 DB "ABCDEFG" DATA1 ENDS DATA2 SEGMENT ;定义数据段DATA2 word2 DW 1234h word3 DW 9876h DATA2 ENDS DATA3 SEGMENT ;定义数据段DATA3 byte2 DB ? DATA3 ENDS CODE1 SEGMENT ;编写代码段CODE1 ASSUME CS:CODE1, DS:DATA1, ES:DATA2 ;(1) MOV AX, DATA1 ;(2) MOV DS, AX ;(3) MOV AX, DATA2 ;(4) MOV ES, AX ;(5) … MOV AX, word1 ;访问段DATA1中的字变量word1 MOV word2, AX ;访问段DATA2中的字变量word2 … ASSUME DS:DATA3, ES:NOTHING ;(6) MOV AX, DATA3 MOV DS, AX MOV BL, byte2 ;访问段DATA3中的字节变量byte2 … MOV AX, 4C00H ;(7) INT 21H ;(8) CODE1 ENDS

在这个程序当中定义的DATA1、DATA2、DATA3变量一个定义了14个BYTE的内容,最后把DS指向了DATA3 ,书上不是说一个数据段如DS最大占用64K的空间吗,这样的话目前最多也才占用14个单元啊。如果下一次我又要给变量赋值的话,这些值是会从15个单元排起吗,还是怎么的?这些值又该放在什么位置呢?

2 回复
#2
牛虻2005-09-23 23:15
DEBUG
#3
chengfengpol2005-09-27 12:06
是的,依次存储,不过你可以改变存储的位置的。
1