当前位置: 代码迷 >> 汇编语言 >> 请教DOS汇编中怎么得到.data?的段地址
  详细解决方案

请教DOS汇编中怎么得到.data?的段地址

热度:9622   发布时间:2013-02-26 00:00:00.0
请问DOS汇编中如何得到.data?的段地址?
这样做编译通不过,说没有@data?这个段:
mov   ax,   @data?
mov   es,   ax

但是我想对.data?中的一个变量使用rep   stosb指令
lea   dx,   nTable
mov   cx,   32768
xor   al,   al
rep   stosb

这样会出错,但是把变量(就是nTable)放到.data段中结果就是正确的,所以我觉得是ES没有被正确赋值成.data?的段地址

后来又尝试了这样:
mov   ax,   seg   nTable
mov   es,   ax
还是出错

请问这个怎么处理啊?

------解决方案--------------------------------------------------------
dos16 中还真没这么用过. 刚才看了一下 Masm6 的帮助. 其中说:
.data 的段名是 _DATA;
.data? 的段名是 _BBS;
@data 则是等价于 DGROUP, 它是个段组, 包含了所有 near 属性的由 .data, .data?,
.const 以及 .stack 定义的段
  相关解决方案