为何程序从DS+1H处开始存放?

luck4 2005-12-22 02:57:50
书中有如下话:
“通过DS=0B2D,可知道我们的程序从0B3D:0000开始存放。”

为什么啊?DS不就是数据段么,干嘛要从数据段+上一个字型数据的空间处开始存放程序?
...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
luck4 2005-12-22
  • 打赏
  • 举报
回复
刚看书回想起来了,不好意思,我是初学者。谢谢rockefeller8(洛克菲勒) 指教!谢谢 JOKER_UFO(JOKER_UFO) 的批评!
JOKER_UFO 2005-12-22
  • 打赏
  • 举报
回复
to luck4()
你根本没搞明白DS的实际内涵,rockefeller8解释的很明白,你懂不懂 DS+1中存的东西!
多看看书!漫漫理解!
luck4 2005-12-22
  • 打赏
  • 举报
回复
谢谢指教,但是我问的不是偏移地址和段地址的由来。我问的是段地址为什么不是从寄存器ds中取,而是ds+1.
rockefeller8 2005-12-22
  • 打赏
  • 举报
回复
这是地址偏移的问题,
20位地址线,CPU是16位的,请问怎么能把这20位数据用16位表示下来呢?
方法:将20位的一个地址分成两个数据来保存:
高16位和低16位,很明显,有重复的,计算回20位是高16位左移4位加上低16位得到20位
上面的高16位就是楼主的0B3D
上面的低16位就是楼主的0000
高16位称为段地址,低16位称为偏移地址。
举个例子:学生时上间操时,段地址就相当于上小学时的第几班,而偏移地址相当于你是这个班里个第几高的。所有的学生就是内存空间,
楼主的0000是这个班的起始地址。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧