twomelody 发表于 2011-8-8 00:03:47

书目45页的实验任务中的修改主板日期的查询地址是怎么确定的

问题详述:题目要求找到并试图改变内存FFF00H~FFFFFH的生产日期。在视频中小甲鱼老师用的命令:d fff0:0 ff 这是怎么确定的特别是后边的ff 求教了 顺便还有个问题:在debug命令中使用“d fff00”命令为什么告知“error” 这个地方还是 有点不太明白,是不是跟那个地址加法器有关呢? 在此提前谢过了。。。{:5_110:}

bevin 发表于 2011-8-8 00:35:43

d命令的作用是查看一个物理地址单元里面存储的数据:一个物理地址是由(段地址:偏移地址)组成的,物理地址 = 10h*段地址+偏移地址 ,所以用d命令查询的时候要用d fff0:0的格式,当用d 00f0的格式表示查看当前段地址为ds,偏移地址为00f0的单元里面的数据。。。。,当d后面的数超过四位,自然会报错。。。
还有,生产日期只是在FFF00H~FFFFFH这段单元中,然后慢慢比对发现,只有fff0:0 ff 这小段的ASCII码里面的信息才可能是出厂日期,所以得出结果的,并不是一开始就知道的,小甲鱼可能把中间繁琐的找的工作给省略掉了。。。。。希望能帮助到LZ。。。。。

twomelody 发表于 2011-8-8 01:03:09

bevin 发表于 2011-8-8 00:35 static/image/common/back.gif
d命令的作用是查看一个物理地址单元里面存储的数据:一个物理地址是由(段地址:偏移地址)组成的,物理地址...

FFF0:0是来自FFF00H FFF0*10+0;那么ff来自什么啊 跟FFFFFH有什么关系?还有就是"当用d 00f0的格式表示查看当前段地址为ds,偏移地址为00f0的单元里面的数据。。。。,"用d 00f0 和d 00f0:0有什么区别啊 我调试以后发现内存里的内容貌似不一样啊如图:




最后再细问下那个d 后边超出4位 为什么会报错啊~{:5_94:} 最后的最后就是谢谢你的解答啦



{:5_110:}









bevin 发表于 2011-8-8 01:44:31

d命令后面接的是偏移地址,偏移地址是0000H~FFFFH,是16位的,超过四位数的话他就超过FFFFH,就不能作为偏移地址了。。。。所以会报错。。。。

bevin 发表于 2011-8-8 01:47:42

假设当前DS= 1415H,(就是LZ图片中的ds值),那么d 00f0 ,相当于查看d 1415:00f0这段存储区中的值
d 00f0:0就是表面上算出的物理地址。。。。查看的就是00f0:0对应储存区中的值。。。。

bevin 发表于 2011-8-8 01:55:56

还有第一个问题:找到并试图改变内存FFF00H~FFFFFH的生产日期,此段物理空间均可使用段地址FFF0H,偏移地址从0000到00FFH来表示,(FFF0H*10H+0000 = FFF00H, FFF0H*10H+00FFH = FFFFFH),希望能帮到lz,,,{:5_102:}
页: [1]
查看完整版本: 书目45页的实验任务中的修改主板日期的查询地址是怎么确定的