能不能用段名:[偏移地址]代表内存地址呢
王爽《汇编语言》6.3节提到对段地址的引用问题,里面提到不能用“mov ds,datamov bx,ds:",要用”mov ax,data
mov ds,ax
mov bx,ds:“,这里我问的是为什么不直接用"mov bx,data:" 呢?data不也表示的是段地址么?
本帖最后由 福禄娃娃 于 2013-11-9 15:29 编辑
data也是代表一个标号也是一个地址,但不能代表段地址,这是一种约定俗成的东西
段地址 ds es ss cs 只是人为设计出来的,便于程序员编程,最后还是会被编译器给处理成实际地址,而 Intel CPU刚好支持段寻址这种方式。
这个问题 我也在百度上找过,回答最多的是assume只是编译的时候 把data段和寄存器联系了起来,但是因为DOS下,每次载入内存地址不固定的,需要重定位,所以需要重新放入ds中,至于对错,还待研究... 福禄娃娃 发表于 2013-11-9 15:28 static/image/common/back.gif
data也是代表一个标号也是一个地址,但不能代表段地址,这是一种约定俗成的东西
段地址 ds es ss cs 只是人 ...
你这速度。。。。。。。。。。。贼快! 1236 发表于 2013-11-9 15:35 static/image/common/back.gif
你这速度。。。。。。。。。。。贼快!
回复后发现你更快,囧 福禄娃娃 发表于 2013-11-9 16:16 static/image/common/back.gif
回复后发现你更快,囧
{:5_95:}为什么要追我,我要急支糖浆。。。。。 1236 发表于 2013-11-9 16:18 static/image/common/back.gif
为什么要追我,我要急支糖浆。。。。。
{:5_108:} 汇仁肾宝,他好你也好~~ date 不是段寄存器 只有段寄存器才能和 【】发生关系
页:
[1]