rom是只读存储器,它只可以读取不能后来修改。这个概念在之前已经在我脑里形成了,但是做到这个实验之后才开始有了疑问。
1. 我的计算机用debug是能修改FFFF:0000这段内存的。但是打开另一个debug之后又回复到原来的内容了。
2. 来自百度和《汇编语言第二版答案》的
--------------------------------------------------------
还有另一种情况,如果你发现你能修改ROM中的生产日期,那么原因如下:
每个计算机的结构都不一样,教材考虑的是普通8086PC机上的效果,个别计算机的效果可能不同。
也就是说 在你的计算机中 这个内存是可修改的
所以,认为所有的计算机某些地址的内存不能修改是片面的。
--------------------------------------------------------
我认为这个解释是错误的。ROM如果因为不同的构造就能够被修改那不就应该被称为RAM了吗?为什么还要叫它ROM。
我自己又这样实验。
1. 打开debug
2. 修改FFFF:0000中的内容 -e ffff:0005 30 32 2f 30 39 2f 31 32
3. 查看内容 -d ffff:0005
4. 发现ffff:0005里的内容被修改了
5. 再打开一个debug 查看-d ffff:0005 发现没有被修改
我自己认为这种现象是这样的。
debug是首先在内存地址空间中获取到数据 然后拷贝到自己的地址空间中,在自己的内存空间中对这个虚拟的ffff:0005进行了修改。而实际上根本没有修改到ROM中的内容。
我不敢这样肯定,希望有人能来帮我讨论讨论。 |