乍泄1996 发表于 2016-3-24 11:25:18

查看数据段内容时ds的值的问题

王爽老师的汇编书上4.9有讲的有关这个内容,就是说内存区有一段内存存放PSP的空间,所以程序的地址应该是:ds+10h:0,这里的程序的地址是指什么?程序的地址是不是cs:ip的指向?用d命令查看这不应该是数据段的数据吗?跟程序的入口有什么关系。。ds+10h和cs的值是否存在某种联系。。?

兰陵月 发表于 2016-3-25 18:01:54

本帖最后由 兰陵月 于 2016-3-25 18:04 编辑

以书上的那个例子来说,程序的第一条指令地址就是CS:IP指向的地址。

用D命令查看到的是PSP,这个书上已经明说了是DOS系统创建的,真正有用的从其后100H(256字节)的地方开始的。

ds+10H和CS是否存在某种联系?没有固定的某种联系,硬要看成有联系那就过了或者有联系,但是找出联系的意义不大或者说根本就没意义。

比如说:程序入口处的前面放有数据段定义区、放有栈段定义区,有或数据段、栈段放在code段的后面,这样CS出来的结果都是不一样的。从硬件上去理解,它们就是一个线性空间。

hack88 发表于 2016-3-26 09:53:21

ds是程序载入内存的地址,psp是后面的一段我们现在暂时不用理解的信息,真正的程序代码是从cs哪里开始的,也就是ds+10H的地址。 (cs=ds+10H)
我也是刚看2个星期的书,可能说的不对,仅供参考。

乍泄1996 发表于 2016-3-26 11:51:41

兰陵月 发表于 2016-3-25 18:01
以书上的那个例子来说,程序的第一条指令地址就是CS:IP指向的地址。

用D命令查看到的是PSP,这个书上已 ...

感谢回复,还有一个问题{:10_256:}

乍泄1996 发表于 2016-3-26 17:56:50

兰陵月 发表于 2016-3-25 18:01
以书上的那个例子来说,程序的第一条指令地址就是CS:IP指向的地址。

用D命令查看到的是PSP,这个书上已 ...

咦大神有看到我的提问吗{:5_104:}就是看我贴的那个图啊,为什么用ds+10查看内存的值显示是没有内容的,相反数据是存在ds:00这段内存的,这与psp这段空间的存在性是否有出入呢?

乍泄1996 发表于 2016-3-26 18:31:14

hack88 发表于 2016-3-26 09:53
ds是程序载入内存的地址,psp是后面的一段我们现在暂时不用理解的信息,真正的程序代码是从cs哪里开始的, ...

嘻嘻发现cs和ds没有必然关系呢!一起学习~

兰陵月 发表于 2016-3-27 09:36:54

乍泄1996 发表于 2016-3-26 17:56
咦大神有看到我的提问吗就是看我贴的那个图啊,为什么用ds+10查看内存的值显示是没有内容的,相 ...

图中显示你的传送CS:IP为077C:000B,而那个位置貌似都是0000等无意义数据。你要把你DEBUG的程序贴出来才知道。
页: [1]
查看完整版本: 查看数据段内容时ds的值的问题