sh11va 发表于 2013-2-7 15:05:16

fff0:0100的物理地址?

本帖最后由 sh11va 于 2013-2-7 21:35 编辑

1.移位相加得100000,怎么多出一位,加完不是应该20位吗,这个24位了。
2.还有怎么用e命令修改fff0:0100这个地址里的的具体一个数据,比如
fff0:0100 00 11 00 00 00 00 00 00-00 00 00 00 00 00 00 00 中的第二个数11,怎么改为00?


3.还有fff0:0100这是一个内存单元吗,怎么存了16个字节,不是一个内存单元只能存一个字节吗?

shansongh 发表于 2013-2-7 17:51:19

第一,fff0:100对应的物理地址应该是00000。
据我推测是这样,楼主读取下地址试试
第二,e命令修改内存内容的方法:
e 段地址:偏移地址 内容(十六位)
他会按照你填的十六位数据的顺序排列下去

shansongh 发表于 2013-2-7 17:55:27

第三,楼主的意思我不太理解
不过,地址对应的只是地址,它'会根据你输入的内容来放置数据

sh11va 发表于 2013-2-7 20:23:56

shansongh 发表于 2013-2-7 17:51 static/image/common/back.gif
第一,fff0:100对应的物理地址应该是00000。
据我推测是这样,楼主读取下地址试试
第二,e命令修改内存内 ...

如果fff0:0100物理地址是00000,那么就应该与0000:0000是一个地址吧,但是我查看后发现fff0:0100这个地址与0000:0000地址所存储的数据不同,如图。
然后第三个问题内存单元容量的问题,图中地址右面那些不就是数据吗?怎么每个地址存了16字节的样子?http://f.hiphotos.baidu.com/album/s%3D1100%3Bq%3D90/sign=68d6c839e4dde711e3d247f797dff56a/3812b31bb051f8193bac7b76dbb44aed2e73e705.jpg

刘金伟 发表于 2013-2-7 20:27:50

1.8086只使用20位地址,计算结果溢出部分不计,相当于循环到最开始的地址上。80286以上系统有A20锁,在电脑启动后,禁止想A20地址线输出信号,程序要切入保护模式时,可以通过I/O开锁。
DOS中将超出1MB但仍可在实模式下访问的内存称为上位内存,在Config.sys中加载himem.sys并指定DOS=HIGH,可以将DOS装入这段内存中,从而节省基本内存。
在windows cmd下运行debug d fff0:0100 和 d 0000:0000是不同的,但是在dosbox下是完全相同的

2."-e fff0:101 11"   这样就可以完成修改了。

3.fff0:0100不代表内存,它是一个地址,我们是根据地址找到相应的内存。默认的是一个字节。如果想变为其他形式,需要进行限定如:
mov ax,fff0h
mov ds,ax



sh11va 发表于 2013-2-7 20:35:28

本帖最后由 sh11va 于 2013-2-7 20:43 编辑

刘金伟 发表于 2013-2-7 20:27 static/image/common/back.gif
1.8086只使用20位地址,计算结果溢出部分不计,相当于循环到最开始的地址上。80286以上系统有A ...
感谢大神第一个问题我懂了。
第二个问题为什么这样写啊?

还有楼上我传图了,图中地址右侧的不是数据吗,怎么一个地址对着16字节数据?晕,图显示不了,就是那些00 11 00 00 00 00 00、。。。那些不是内存单元的数据吗,怎么有16字节啊?

刘金伟 发表于 2013-2-7 20:44:23

sh11va 发表于 2013-2-7 20:35 static/image/common/back.gif
感谢大神第一个问题我懂了。
第二个问题为什么这样写啊?


固定的格式啊,就跟我们写"mov ax,12h"就是实现把12h放入ax中

是数据,但这好像是debug自身的问题,它在找到我们输入的地址后,默认输出16个字节的内容
我们其实可以限制输出的字节数数目“-d fff0:100(空格)103”就可以实现查看fff0:100到fff0:103四个数据内容

shansongh 发表于 2013-2-7 23:03:20

本帖最后由 shansongh 于 2013-2-7 23:06 编辑

sh11va 发表于 2013-2-7 20:23 static/image/common/back.gif
如果fff0:0100物理地址是00000,那么就应该与0000:0000是一个地址吧,但是我查看后发现fff0:0100这个地址 ...

我打字打错了
对应的地址是fff00
也就是fff0:0这个位置、
好像也不行
这个问题的答案要等大神来回答了

脾气不坏 发表于 2013-2-8 03:10:03

说清楚是8086 还是80386 一个是16位的另一个是32位的

一朵时光_bobo 发表于 2013-2-8 06:29:42

楼上有理 一般都X86系统 段地址+偏移量
页: [1]
查看完整版本: fff0:0100的物理地址?