zer0 发表于 2013-3-11 12:59:35

关于地址的一些新手问题

(3) 查看内存中的内容PC主板上的ROM中有个一出产日期,在内存FFF00H-FFFFFH的某几个单元中,请找到这个出产日期并试图改变它。
这道题目中为什么我们在debug中寻找的时候地址是填写-d fff0:0 ff而不是这样填写呢:-d fff00:0 ff
为什么最后一位0会被舍去??
求高手解答!!

lukelqz 发表于 2013-3-11 12:59:36

本帖最后由 lukelqz 于 2013-3-11 13:18 编辑

{:2_26:}同学你8086的地址计算没搞明白哦。题目要求是FFF00H-FFFFFH。
如果写成FFF00:0这个的话,你就是把FFF00当作段地址,再左移一位(相当于乘以16),加上偏移地址,就变成了FFF000H显然多一个零啊。多看看王爽老师的《汇编语言》P22页里面的公式和解释

关于xxxx:xxxx 这种写法,冒号前面就是段地址,后面就是偏移地址。带进公式一算就知道对错了

而且8086的寄存器是16位的,你写成FFF00的话,就是20位了,显然存不下。

zer0 发表于 2013-3-11 16:56:37

谢谢!!!!!!!!!!!!

韩冷 发表于 2013-3-11 18:14:26

同学对于
PC主板上的ROM中有个一出产日期,在内存FFF00H-FFFFFH的某几个单元中,请找到这个出产日期并试图改变它
是没有办法改变的。。。。

小靚同学Leon 发表于 2013-3-24 23:06:32

首先要明白段地址和偏移地址,由于808中,对地址的描述是采用 段地址:偏移地址 这样的方式来定义内存中的地址,这样的话,将段地址乘以16加上偏移地址 ,得到的就是实际的内存地址,由于在8086中都是16进制,所以乘以16实际上就是在段地址后面添一个0,再加上偏移地址,不知道这么说你懂不懂
页: [1]
查看完整版本: 关于地址的一些新手问题