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

我不敢这样肯定,希望有人能来帮我讨论讨论。
asura-king
[第1楼]   [ 回复时间:2012-09-16 01:16 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-09-16 00:19
我又在DOS环境下试了一下,完全不能修改到FFFF:0005
ot88to
[第2楼]   [ 回复时间:2012-11-11 21:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-09-25 19:43
我感觉ROM就是只读,debug后才知道改了没
xiaowei123ch
[第3楼]   [ 回复时间:2012-11-11 22:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-08-12 15:28
我得改不了,执行完还是一样的
aspade
[第4楼]   [ 回复时间:2012-11-15 13:29 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-11-15 09:42
我们现在使用的实验环境应该不会是真实的8086的16位机,一般大家用的都是32位机,在windows下进程虚拟地址空间全部就有4G的大小,而默认是有2G留给内核空间,我们能使用到的是2G空间。
在模拟16位空间的时候,会有差别,我认为楼主的理解是对的:
debug是首先在内存地址空间中获取到数据 然后拷贝到自己的地址空间中,在自己的内存空间中对这个虚拟的ffff:0005进行了修改。而实际上根本没有修改到ROM中的内容。
foxive
[第5楼]   [ 回复时间:2013-03-03 20:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-02-27 21:02
windows运行CMD和运行COMMAND就会出现两个不同的结果。书上说了:只有运行command,才是进入8086虚拟模式下的DOS,而CMD则仅仅是一个看起来像DOS的WINDOWS程序。(后半句书上没说)
staywang
[第6楼]   [ 回复时间:2013-07-07 10:54 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-07-07 10:19
rom你进去用debug修改的话也只能暂时修改的,去看看王爽老师的视频有讲解,真的能修改日期,你就不用学这个了。
benbenfei123
[第7楼]   [ 回复时间:2013-07-14 15:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-07-14 15:44
我今天刚看完,试了一下。情况跟楼主的一样,我还以为书上弄错了,rom的东西咋能被修改呢。后来再次运行debug查看命令发现还是原来的日期。具体原因不懂,不过觉得楼主说的有道理。受教了谢谢!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved