回 帖 发 新 帖 刷新版面

主题:对大家来说很简单的问题,进来帮帮吧!

我的疑问是这样的:

我们知道 段地址*16+偏移地址=物理地址,段地址在ds中存储着即ds=段地址,如下形式:

段地址    偏移地址    物理地址
2000h      1f60h       21f60h

格式如2000:1f60表示的是一个物理位置,ds=2000。即ds*16+偏移地址=物理地址。

如果ds=0b2d的话程序从哪开始存放呢?因为上面的理解是我认为应该从0b2d:0000处存放,可是结果不是,是从0b3d:0000处存放,即ds+1:0000处存放。我不知道这是为什么?初学者,大家多多关照。。。。

回复列表 (共2个回复)

沙发

程序从哪开始存放呢?
从 CS:0000 开始存放的是程序
从 DS:0000 开始存放的是数据

板凳

可是实际上数据存放是从(DS+1):0000处开始的。我的问题就是为什么本该是ds:0000处开始存放的变成了在(ds+1):0000处存放了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册