新手学汇编问题

hewn2011 2012-08-09 07:30:33
我在一段程序中定义了一个名为data的数据段,用debug加载查看data段中的内容,ds为0b2d,cs为0b3e
书上说因为ds=ob2d,所以程序从ob3dh开始,因为data为程序的第一个段,所以它的段地址为ob3dh,这是为什么
如果说因为cs=0b3e,所以data的段地址为ob3dh,这个我倒是明白,但上面的这个我确实搞不懂
希望高手赐教
...全文
73 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2012-08-09
  • 打赏
  • 举报
回复
是这样的,这里有个 dos 载入程序的做法的问题。dos/debug 在载入程序后将执行控制交予程序时,ds 指向了程序的 psp 空间,psp 区为 100h 字节的大小,即 10h 段的大小。所以用 debug 载入程序时看到的 ds 就是 psp 的段址,不是你程序的 data 段址;自己需要主动地将 ds 指向 data 段址以能正确地访问到其中的内容。若 ds(psp)=0b2d ,由于 psp 为 10h 段的大小,所以作为第一个程序的段的 data 的段址就是 0b2d+10=0b3d 了;cs 是多少,就看 data 段的大小了。
hewn2011 2012-08-09
  • 打赏
  • 举报
回复
谢谢了,哥们儿

21,458

社区成员

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

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