鱼C论坛

 找回密码
 立即注册
查看: 2447|回复: 13

汇编语言第2章实验4

[复制链接]
发表于 2013-6-27 18:51:25 | 显示全部楼层 |阅读模式
1鱼币
汇编语言第2章实验4
向内存从B8100H开始的单元中填写数据,如
-e B810:0000 01 01 02 02 03 03 04 04
请读者先填写不同的数据,观察产生的现象;再改变填写的地址,观察产生的现象。
提示,如果读者对实验的结果感到疑惑,请仔细阅读第1章中的1.15节。
实验环境:Oracle VM VirtualBox 下的 windows 2000 中文专业版。
实验如下:
1.jpg
执行写入再查询
2.jpg
改变数据写入再查询
3.jpg
简单观察后,只发现数据确实有改变,但不是按照写入的内容正常改变,且IP地址中1、3、5、7、9、B、D、F的值始终不变。根据提示阅读相关章节,依然没有头绪,且小甲鱼提供的答案中没有对此题的解释,求解,谢谢。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-29 19:31:14 | 显示全部楼层
你换个地址试试,还有看书的时候,不能步步都按书上的来做,要懂得变通!记得以前也经常出这样的问题,
你把实验的精神掌握就行了。这道题可能是你写的地址是操作系统或者是某些其他重要应用程序的内存地址,所以你写数据的时候会引发写操作异常!希望这些能给你启示。{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-29 22:23:16 | 显示全部楼层
学习了!!!!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-29 22:39:09 | 显示全部楼层
:P我也算学习了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-6-30 00:27:50 | 显示全部楼层

谢谢你的回答,其他地址的实验已正常做过了,只是不清楚此题与提示章节所讲的内容有什么关联,故有此一问。提示章节只是说明指令和数据在存储的时候没有任何区别。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-6-30 02:31:50 | 显示全部楼层
本帖最后由 slkj_xj 于 2013-6-30 02:34 编辑

原来没有看视频教程,视频教程中说的很清楚,B810:0这个地址是显存地址,也就是说向这个地址中写入数据,是直接可以
显示在屏幕上的,在VM下的windows2000环境下没有测试成功,进入真实系统WIN7下测试成功。如下图:
1.刚进入DEBUG界面,注意第二行最后的?号。
6.jpg
2.按照题目要求输入执行后,注意上面原来的?号处。
7.jpg
3.输入数据,使其显示从0~9的数字。
8.jpg
最后赞一下小甲鱼的视频,做的真的很好。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-30 03:21:30 | 显示全部楼层
恩,我建议你以后学会编,尽量用真实的操作系统,不要用虚拟机!你可以提前看一下课本第117页--”一段安全的地址空间“
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-6-30 15:54:20 | 显示全部楼层
↓《 发表于 2013-6-30 03:21
恩,我建议你以后学会编,尽量用真实的操作系统,不要用虚拟机!你可以提前看一下课本第117页--”一段安全的 ...

选择使用虚拟机也是怕影响到正常的机器运行,谢谢你的建议。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-30 16:53:17 | 显示全部楼层
这个你不必担心,既然Windows提供了虚拟8086模式就肯定不会影响到PC的正常运转的!{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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下DEBUG  B8100段中表示第一行永远不被看到  要测试 要将数据写到第二行或第八行  这个根据你这次输入的数据要滚动多少行来算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-1 22:32:42 | 显示全部楼层
slkj_xj 发表于 2013-6-30 15:54
选择使用虚拟机也是怕影响到正常的机器运行,谢谢你的建议。

windows下的8086也是虚拟的.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-7-5 02:42:59 | 显示全部楼层
青草 发表于 2013-7-1 21:46
提示下 就是B8100的地址中 你说的1、3、5、、、、F 这些地址书上没有告诉你吗 这些字节是设置颜色的
      ...

非常好,谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-28 19:32:25 | 显示全部楼层
x学习学习再学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-17 10:35:42 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 20:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表