鱼C论坛

 找回密码
 立即注册
查看: 1775|回复: 7

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

[复制链接]
发表于 2013-11-9 11:53:53 | 显示全部楼层 |阅读模式
2鱼币
王爽《汇编语言》6.3节提到对段地址的引用问题,里面提到不能用“mov ds,data
                                                                                                       mov bx,ds:[6]",要用”mov ax,data
                                                                                                                                         mov ds,ax
                                                                                                                                         mov bx,ds:[6]“,这里我问的是为什么不直接用"mov bx,data:[6]" 呢?data不也表示的是段地址么?

最佳答案

查看完整内容

data也是代表一个标号也是一个地址,但不能代表段地址,这是一种约定俗成的东西 段地址 ds es ss cs 只是人为设计出来的,便于程序员编程,最后还是会被编译器给处理成实际地址,而 Intel CPU刚好支持段寻址这种方式。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-9 11:53:54 | 显示全部楼层
本帖最后由 福禄娃娃 于 2013-11-9 15:29 编辑

data也是代表一个标号也是一个地址,但不能代表段地址,这是一种约定俗成的东西
段地址 ds es ss cs 只是人为设计出来的,便于程序员编程,最后还是会被编译器给处理成实际地址,而 Intel CPU刚好支持段寻址这种方式。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-9 15:26:34 | 显示全部楼层
这个问题 我也在百度上找过,回答最多的是assume只是编译的时候 把data段和寄存器联系了起来,但是因为DOS下,每次载入内存地址不固定的,需要重定位,所以需要重新放入ds中,至于对错,还待研究...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-9 15:35:17 | 显示全部楼层

你这速度。。。。。。。。。。。贼快!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-9 16:16:11 | 显示全部楼层
1236 发表于 2013-11-9 15:35
你这速度。。。。。。。。。。。贼快!

回复后发现你更快,囧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-9 16:18:29 | 显示全部楼层
福禄娃娃 发表于 2013-11-9 16:16
回复后发现你更快,囧

为什么要追我,我要急支糖浆。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-9 16:21:17 | 显示全部楼层
1236 发表于 2013-11-9 16:18
为什么要追我,我要急支糖浆。。。。。

汇仁肾宝,他好你也好~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-7 19:28:55 | 显示全部楼层
date 不是段寄存器 只有段寄存器才能和 【】发生关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 21:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表