. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
主题 : :  实验任务(3)疑问!!  [待解决] 回复[ 7次 ]   点击[ 538次 ]  
asura-king
[帖 主] [ 发表时间:2012-09-16 00:42 ] 
荣誉值:0
信誉值:0
注册日期:2012-09-16 00:19
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中的内容。

我不敢这样肯定,希望有人能来帮我讨论讨论。
foxive
[第5楼] [ 回复时间:2013-03-03 20:02 ] 
荣誉值:0
信誉值:0
注册日期:2013-02-27 21:02
windows运行CMD和运行COMMAND就会出现两个不同的结果。书上说了:只有运行command,才是进入8086虚拟模式下的DOS,而CMD则仅仅是一个看起来像DOS的WINDOWS程序。(后半句书上没说)
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved