slkj_xj 发表于 2013-6-27 18:51:25

汇编语言第2章实验4

汇编语言第2章实验4
向内存从B8100H开始的单元中填写数据,如
-e B810:0000 01 01 02 02 03 03 04 04
请读者先填写不同的数据,观察产生的现象;再改变填写的地址,观察产生的现象。
提示,如果读者对实验的结果感到疑惑,请仔细阅读第1章中的1.15节。
实验环境:Oracle VM VirtualBox 下的 windows 2000 中文专业版。
实验如下:

执行写入再查询

改变数据写入再查询

简单观察后,只发现数据确实有改变,但不是按照写入的内容正常改变,且IP地址中1、3、5、7、9、B、D、F的值始终不变。根据提示阅读相关章节,依然没有头绪,且小甲鱼提供的答案中没有对此题的解释,求解,谢谢。

↓《 发表于 2013-6-29 19:31:14

你换个地址试试,还有看书的时候,不能步步都按书上的来做,要懂得变通!记得以前也经常出这样的问题,
你把实验的精神掌握就行了。这道题可能是你写的地址是操作系统或者是某些其他重要应用程序的内存地址,所以你写数据的时候会引发写操作异常!希望这些能给你启示。{:1_1:}

Skyline 发表于 2013-6-29 22:23:16

学习了!!!!!!!!!!!

青云有路 发表于 2013-6-29 22:39:09

:P我也算学习了。。。

slkj_xj 发表于 2013-6-30 00:27:50

↓《 发表于 2013-6-29 19:31 static/image/common/back.gif
你换个地址试试,还有看书的时候,不能步步都按书上的来做,要懂得变通!记得以前也经常出这样的问题,
你 ...

谢谢你的回答,其他地址的实验已正常做过了,只是不清楚此题与提示章节所讲的内容有什么关联,故有此一问。提示章节只是说明指令和数据在存储的时候没有任何区别。

slkj_xj 发表于 2013-6-30 02:31:50

本帖最后由 slkj_xj 于 2013-6-30 02:34 编辑

原来没有看视频教程,视频教程中说的很清楚,B810:0这个地址是显存地址,也就是说向这个地址中写入数据,是直接可以
显示在屏幕上的,在VM下的windows2000环境下没有测试成功,进入真实系统WIN7下测试成功。如下图:
1.刚进入DEBUG界面,注意第二行最后的?号。

2.按照题目要求输入执行后,注意上面原来的?号处。

3.输入数据,使其显示从0~9的数字。

最后赞一下小甲鱼的视频,做的真的很好。

↓《 发表于 2013-6-30 03:21:30

恩,我建议你以后学会编,尽量用真实的操作系统,不要用虚拟机!你可以提前看一下课本第117页--”一段安全的地址空间“

slkj_xj 发表于 2013-6-30 15:54:20

↓《 发表于 2013-6-30 03:21 static/image/common/back.gif
恩,我建议你以后学会编,尽量用真实的操作系统,不要用虚拟机!你可以提前看一下课本第117页--”一段安全的 ...

选择使用虚拟机也是怕影响到正常的机器运行,谢谢你的建议。

↓《 发表于 2013-6-30 16:53:17

这个你不必担心,既然Windows提供了虚拟8086模式就肯定不会影响到PC的正常运转的!{:1_1:}

青草 发表于 2013-7-1 21:46:43

本帖最后由 青草 于 2013-7-1 21:50 编辑

提示下 就是B8100的地址中 你说的1、3、5、、、、F 这些地址书上没有告诉你吗 这些字节是设置颜色的
         而你改的那些数据是显示出来 但不会在数据段中看到的 也就是说人输入01 01 02 02 …………这些数据人被立即显示到左上角 B8100这个地址是对应着屏幕(全屏 不是全屏就是你的窗口左上角“黑色区域不加标题栏”)

下在简单解释下你的输入 :

   -e   b810:0   01       01            02      02      03      03      ;因需要我加的不是一个空格是多个
                            |      |            |         |      |         |
                        显示1   显示颜色显示2    显示颜色

注:显示*      表示的是在屏幕(窗体黑色区域)显示个01
       显示颜色   这个要根据RGB值来算有可能是前景色(字体的颜色) 也可能是后景色(字体后面背景色“显示的颜色只占一个字节大小的方形”)

刚想起来你的输入是无法被看到的原因是DOS的屏是滚动的 给你输入的B810:0处理论是第一行但当你按下回车后 屏幕上滚就变成了过去的好一行你永远看不到你的输入结果想看到 你至少要在B810:50处写下按回车在注意在屏幕上找

对于你说的你的设置始终不能改变B810:0处你改的那几个字节这是因为B810这段址是显存 显存中的数据随显示改变 而不是你所想的数据段那样系统不修改它不会变   怎么说呢   算了算总结吧 也不知道你懂不懂B810这个段里的内容   你不往屏幕(DEBUG窗口)中输入数据它不会变而你输入数据它就会变当你向里写数据它会立刻显示到屏幕(DEBUG窗口上)   要判断你往B8100段写数据成不在功只能看屏幕(注意看书中讲B8100这段地址中对应的行和列,例如B810:0这个地址不是代表一行)   

最后一句 往B8100段中写数据永远不要写到第一行中因为第一行永远在你按下回车后变成过去式而你不按下回车你的写数据永远不成功

本人有点唐僧了   写的这么多不知道你能不能看懂看不懂可以给我信息
PS下:WIN7下我没有试过但我只知道XP下DEBUGB8100段中表示第一行永远不被看到要测试 要将数据写到第二行或第八行这个根据你这次输入的数据要滚动多少行来算

志华 发表于 2013-7-1 22:32:42

slkj_xj 发表于 2013-6-30 15:54 static/image/common/back.gif
选择使用虚拟机也是怕影响到正常的机器运行,谢谢你的建议。

windows下的8086也是虚拟的.

slkj_xj 发表于 2013-7-5 02:42:59

青草 发表于 2013-7-1 21:46 static/image/common/back.gif
提示下 就是B8100的地址中 你说的1、3、5、、、、F 这些地址书上没有告诉你吗 这些字节是设置颜色的
      ...

非常好,谢谢。

菜鸟一个a 发表于 2013-12-28 19:32:25

x学习学习再学习

阔怀 发表于 2015-8-17 10:35:42

{:1_1:}
页: [1]
查看完整版本: 汇编语言第2章实验4