四、实验结论

任务一:

(1)

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

②清屏后运行

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

任务二:

(1)

①源代码:

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

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

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

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

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

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

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

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

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

分析:

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

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

修改代码中cx的值,发现用r命令查看时,cx不变,程序大小并没有改变

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

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

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

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

①编辑,编译,连接,debug执行,反汇编

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

五、总结与体会

本次实验巩固了[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. 看到了必须要Mark啊,最全的编程中英文词汇对照汇总(里面有好几个版本的,每个版本从a到d的顺序排列)

    java:  第一章: JDK(Java Development Kit) java开发工具包 JVM(Java Virtual Machine) java虚拟机 Javac  编译命令 java   ...

  2. 《重构》的读书笔记–方法列表

    第5章 重构列表 5.1 重构的记录格式103 5.2 寻找引用点105 5.3 这些重构手法有多成熟106 第6章 重新组织函数 6.1 (P110)Extract Method(提炼函数) 6.2 ...

  3. 【spring源码分析】IOC容器初始化(四)

    前言:在[spring源码分析]IOC容器初始化(三)中已经分析了BeanDefinition注册之前的一些准备工作,下面将进入BeanDefinition注册的核心流程. //DefaultBean ...

  4. 【题解】P2922 [USACO08DEC]秘密消息Secret Message

    \(\text{Tags}\) 字典树,统计 题意: 给出两组\(\text{0/1}\)串\(\text{A,B}\),求解\(\text{A}\)中某串是\(\text{B}\)中某串的前缀,和\ ...

  5. ESP8266最小系统

    http://www.dnsj88.com/Products/esp12f.html https://gitai.me/2017/04/Re-Zero-Starting-in-IoT/

  6. Neutron路由篇:L3 agent+Namespace

    Neutron 的路由服务是由 l3 agent 提供的. 除此之外,l3 agent 通过 iptables 提供 firewall 和 floating ip 服务.     l3 agent 需 ...

  7. 解决android studio引用远程仓库下载慢(JCenter下载慢)

    使用开源中国的maven库 阿里云的(速度飞快):http://maven.aliyun.com/nexus/content/groups/public/ 替换项目根目录下build.gradle中的 ...

  8. springboot 的部分细节

    Application.properties 中#指定端口号 server.port= #指定访问路径必须以/crud/xxx 开始 server.servlet.context-path=/crud ...

  9. vue 倒计时组件

    <template> <span> <i v-text="msg"></i> </span></template& ...

  10. 利用ajax技术 实现用户注册。

    一.ajax? 异步加载技术,在不刷新网页的前提下,实现部分网页内容的更新! AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容. 思考? 注册界面刚好可以应用 ...