七件夏天衫 发表于 2013-11-9 11:53:53

能不能用段名:[偏移地址]代表内存地址呢

王爽《汇编语言》6.3节提到对段地址的引用问题,里面提到不能用“mov ds,data
                                                                                                       mov bx,ds:",要用”mov ax,data
                                                                                                                                       mov ds,ax
                                                                                                                                       mov bx,ds:“,这里我问的是为什么不直接用"mov bx,data:" 呢?data不也表示的是段地址么?

福禄娃娃 发表于 2013-11-9 11:53:54

本帖最后由 福禄娃娃 于 2013-11-9 15:29 编辑

data也是代表一个标号也是一个地址,但不能代表段地址,这是一种约定俗成的东西
段地址 ds es ss cs 只是人为设计出来的,便于程序员编程,最后还是会被编译器给处理成实际地址,而 Intel CPU刚好支持段寻址这种方式。

1236 发表于 2013-11-9 15:26:34

这个问题 我也在百度上找过,回答最多的是assume只是编译的时候 把data段和寄存器联系了起来,但是因为DOS下,每次载入内存地址不固定的,需要重定位,所以需要重新放入ds中,至于对错,还待研究...

1236 发表于 2013-11-9 15:35:17

福禄娃娃 发表于 2013-11-9 15:28 static/image/common/back.gif
data也是代表一个标号也是一个地址,但不能代表段地址,这是一种约定俗成的东西
段地址 ds es ss cs 只是人 ...

你这速度。。。。。。。。。。。贼快!

福禄娃娃 发表于 2013-11-9 16:16:11

1236 发表于 2013-11-9 15:35 static/image/common/back.gif
你这速度。。。。。。。。。。。贼快!

回复后发现你更快,囧

1236 发表于 2013-11-9 16:18:29

福禄娃娃 发表于 2013-11-9 16:16 static/image/common/back.gif
回复后发现你更快,囧

{:5_95:}为什么要追我,我要急支糖浆。。。。。

福禄娃娃 发表于 2013-11-9 16:21:17

1236 发表于 2013-11-9 16:18 static/image/common/back.gif
为什么要追我,我要急支糖浆。。。。。

{:5_108:} 汇仁肾宝,他好你也好~~

dps521 发表于 2014-2-7 19:28:55

date 不是段寄存器 只有段寄存器才能和 【】发生关系
页: [1]
查看完整版本: 能不能用段名:[偏移地址]代表内存地址呢