【实验四】[bx]和loop的使用

时间:2022-10-18 08:55:02

四、实验结论

任务一:

(1)

①当我写 mov ax,b800h时,编译报错了。

【实验四】[bx]和loop的使用

②清屏后运行【实验四】[bx]和loop的使用

(2)将源代码程序中字数据0403H→修改为0441H,再次运行,图案发生了变化。

【实验四】[bx]和loop的使用

任务二:

(1)

①源代码:【实验四】[bx]和loop的使用

②用debug执行并查看内存单元的值。(用了p命令和t命令的单步执行)

【实验四】[bx]和loop的使用

★★★比较懒,想用g命令,结果输入 g=076a:0000 076a:0018或者g=076a:0000 0018后,直接死机,笔记本上是这样记录的,之前程序使用前者,也没有问题,(后者是错的,千万不要写!!!!!)

★★★★★使用g命令,最好执行到mov ax,4c00h之前!!!

反而是下图,误打误撞不知道怎么的就对了。

****经查阅,下图输入的g 076a:cd21,代表程序执行到此处断点

【实验四】[bx]和loop的使用

★★★还有直接g命令也可以正常结束

【实验四】[bx]和loop的使用

★★★另外,经多次试验发现,g命令必须在程序最后的代码,int 21h之前停止执行!!

(此处借用的下一个任务的代码试验)

【实验四】[bx]和loop的使用

【实验四】[bx]和loop的使用

任务三:将“mov按下,4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。

分析:

要复制代码段,应该找到代码的起始地址,根据书本4.9节,程序起始地址为cs:ip(ip=0),所以第一步应该是mov ax,cs。

mov cx,___   要知道cx的值,经网上查询,要知道程序的长度,可以将cx随便附一个值,然后用debug执行,反汇编,查看mov ax,4c00h之前的代码的长度。

【实验四】[bx]和loop的使用

【实验四】[bx]和loop的使用

修改代码中cx的值,发现用r命令查看时,cx不变,程序大小并没有改变【实验四】[bx]和loop的使用

可以看出来,0000到0016,长度为23,所以mov cx,23

但r命令查看的cx值为1c,即28,它并不是有效代码段的长度,这是整个程序的长度吗??

关于es:[bx],观察到es==ds,有什么意义吗??

另外,代码命名改变了ds和cx的值,但每次执行后,他们都会变成固定的值,有点迷糊。

①编辑,编译,连接,debug执行,反汇编【实验四】[bx]和loop的使用

②debug执行并查看内存单元。

【实验四】[bx]和loop的使用

五、总结与体会

本次实验巩固了[bx]和loop的使用,虽然过程并不平缓,但好歹是做到底。

另外通过亲自实验,我了解了更多的g命令的用法,感慨果然懒惰使人进步(玩笑),弄懂后有淡淡的成就感。

不过实验中还存在些问题,还得思考解决。

【实验四】[bx]和loop的使用的更多相关文章

  1. 实验4 —— [bx]和loop的使用

    实验 综合使用 loop.[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个字单元重复填充字数据 0403H. 以下为示例程序: assume cs:code # 1 c ...

  2. 实验4 [BX]和loop指令

    实验内容: 1.综合使用loop,[bx],编写完整汇编程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0441H. 实验结果: 若填充的数据为:0403h,则实验结果转变为: ...

  3. 汇编语言_实验四_[bx]和loop的使用

    四.实验结论 1.       实验内容1 (1)源代码: assume cs:code code segment mov ax,0b800h mov ds,ax mov bx,07b8h mov c ...

  4. Oracle 实验四-七

    shutdown immediateORA-01097: 无法在事务处理过程中关闭 - 请首先提交或回退 解决:先 "commit" 实验四 SQL Production :: C ...

  5. php实验四

    实验四 1.创建一个Person类,Person中包含三个属性name,age,wealth,分别设置为public,private,protected,再定义Person类的子类Student. 2 ...

  6. 实验四 简单的PV操作

    实验四 简单的PV操作 专业 网络工程   姓名 方俊晖 学号 201406114309 一.        实验目的 1.掌握临界区的概念及临界区的设计原则: 2.掌握信号量的概念.PV操作的含义以 ...

  7. Java实验四

    20145113 Java实验四 快捷键 之前没怎么记ISDEA的快捷键,但是熟练使用快捷键可以带来很多的便利,于是先开始学习一些常用的快捷键,就采用它默认的快捷键,这样后期就不会出现冲突,一些and ...

  8. 20145316&20145229实验四:驱动程序设计

    20145316&20145229实验四:驱动程序设计 结对伙伴:20145316 许心远 博客链接:http://www.cnblogs.com/xxy745214935/p/6130871 ...

  9. 20145301&20145321&20145335实验四

    20145301&20145321&20145335实验四 这次实验我的组员为:20145301赵嘉鑫.20145321曾子誉.20145335郝昊 实验内容详见:实验四

随机推荐

  1. java 中的volatile

    本博客摘录自   http://www.infoq.com/cn/articles/java-memory-model-4/ 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别.理解 ...

  2. 网吧局域网里的设置外网IP地址、设置内网IP地址、限制内网速度和路由器共享

    现在啊,网吧的需求越来越高,同时在经济比较充裕的情况下,作为网吧的老板可能希望打造全千兆的网吧,让每个进入网吧的人都能充分体验高速的感觉,当然更重要的是在同行竞争中处于上游,特别是对网络游戏爱好者的吸 ...

  3. Windows 7 EXE图标丢失修复方法

    有过Win7下的一些EXE文件图标莫名奇妙丢失,但功能却正常的情况吗?这是图标缓存的问题,应该是Win7的bug. 在命令提示符下输入下列命令即可恢复. 以下是代码片段: taskkill /im e ...

  4. JQuery插件datatables相关api

    学习可参考:http://www.guoxk.com/node/jquery-datatables http://yuemeiqing2008-163-com.iteye.com/blog/20069 ...

  5. 《java.util.concurrent 包源码阅读》17 信号量 Semaphore

    学过操作系统的朋友都知道信号量,在java.util.concurrent包中也有一个关于信号量的实现:Semaphore. 从代码实现的角度来说,信号量与锁很类似,可以看成是一个有限的共享锁,即只能 ...

  6. ashx获取Oracle数据库图片

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using DbLib.db; ...

  7. [转]简单的动态修改RDLC报表页边距和列宽的方法

    本文转自:http://star704983.blog.163.com/blog/static/136661264201161604413204/ 1.修改页边距 XmlDocument XMLDoc ...

  8. Centos 设置zookeeper开机自启动

    把zookeeper做成服务 1.进入到/etc/rc.d/init.d目录下,新建一个zookeeper脚本 [root@zookeeper ~]# cd /etc/rc.d/init.d/ [ro ...

  9. CF398B Painting The Wall 概率期望

    题意:有一个 $n * n$ 的网格,其中 $m$ 个格子上涂了色.每次随机选择一个格子涂色,允许重复涂,求让网格每一行每一列都至少有一个格子涂了色的操作次数期望.题解:,,这种一般都要倒推才行.设$ ...

  10. 测试网站访问速度的方法(GTmetrix)

     全方位的免费网站速度测试工具 — GTmetrix 它结合了Google Page Speed和Yahoo! YSlow的网页速度测试功能,并且提供可行的建议帮你改善网站速度.会根据网站的具体情况, ...