汇编语言实验三

1. 练习1 第1步,编写汇编源程序t1.asm, 源程序代码如图1-1所示。 

(1) 运行程序,观察程序输出结果是什么?

2) 将 line4和line9种寄存器dl 的值分别修改为 0~9 中任何一个数字,重新汇编→ 连接→运行,观察结果的变化。

line4:3改为2      line9:6改为4

(3) 用debug对生成的可执行文件 t1.exe 进行调试。

① 使用 r 命令查看。观察寄存器 cx 的值是 多少;观察寄存器 ds 和 cs 的值是多 少,它们之间是否满足关系(cs)=(ds)+10H? 

② PSP(程序段前缀)的头两个字节是CD 20, 用debug查看PSP的内容,验证是否 如此。

③ 使用 u 命令对 t1.exe 进行反汇编,观察反汇编得到的源代码。

④ 使用 t 命令和 p 命令(遇到 int 命令时,用 p 命令)单步调试,观察结果。 

答:①CX的值为0016,DS的值为075A,CS的值为076A,两者间关系满足(cs)=(ds)+10H。

2. 练习2 第1步,编写汇编源程序t2.asm,源程序代码如图1-2所示。 

(1) 对t2.asm进行汇编、连接后,得到可执行文件t2.exe。运行t2.exe,观察程序运行 结果,验证是否在屏幕左上方出现红色的数值36。

(2) 如果(1)结果得到验证,重新打开t2.asm,尝试将源代码中line7的0433h→0432h, line10 的 0436h→0439h, 然后重新汇编、连接,得到可执行文件 t2.exe。使用 cls 命令清 屏后,再次观察程序运行结果。

(3) 如果(1)结果得到验证,重新打开t2.asm,尝试将源代码中line7的0433h→0333h, line10 的 0436h→0336h, 然后重新汇编、连接,得到可执行文件 t2.exe。使用 cls 命令清 屏后,再次观察程序运行结果。 

3. 延伸思考和分析

(1)把练习2和实验 1「实验任务(4)」,放到一起看,观察并思考这两个实验任务之间 的关联,结合实验 1「实验任务(4)」以及练习 2 中每行汇编指令的功能,理解练习 2 中程 序t2.asm实现的功能;

         前面控制颜色,后面控制输出内容。通过int 21 执行显示字符串的指令。

(2)把练习 2 和练习 1 放到一起看,结合两个程序各自的源代码以及运行结果,观察 并思考这两个程序在实现数值显示时不同的做法。

          练习一:命令形式输出。练习二:显示器输出。

总结

了解了源程序的编译和连接,并进行程序执行过程的跟踪。

转载于:https://www.cnblogs.com/sqy1999/p/9861165.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java事实让您大吃一惊! (信息图)

随着Java 8计划在未来几天内发布 ,我们正在寻找一些Java事实,这些事实将真正捕捉这种编程语言对世界的影响。 因此,我们决定创建一个简单的图表,描述有关Java历史的一些重要统计数据。 信息的主要来源是Oracle的Java时间轴 。 我…

15个创意示例教您如何自定义 404 错误页面

在这篇文章中,你会看到一组充满创意的404错误页面设计。我希望这个集合能够启发和帮助你设计自己的 404 错误页面。一个自定义的404错误页面将鼓励用户在您的网站上停留更长的时间。 404页面必须让访客容易理解,最好有有一些互动。你会看到下面的例子中一…

C语言反序输出英文句子,C++实现英文句子中的单词逆序输出的方法

本文实例讲述了C实现英文句子中的单词逆序输出的方法。分享给大家供大家参考,具体如下:#include "stdafx.h"#include #include #include using namespace std;int main(int arc,char** argv){string str"I come from liaoning.";sta…

input 输入值的监听 禁止输入特殊字符

1.input 输入值的监听 //用于监听input的值变化(input的值产生变化才会触发事件)(function ($) {$.fn.watch function (callback) {return this.each(function () {//缓存以前的值 $.data(this, originVal, $(this).val());//event $(this).on(keyu…

android 如何extends 多个,Android多线程:继承Thread类 使用解析(含实例教程)

前言在Android开发中,多线程的使用十分常见今天,我将全面解析多线程其中一种常见用法:继承Thread类。目录示意图1. 简介示意图2. 使用讲解2.1 使用步骤示意图2.2 具体使用// 步骤1:创建线程类 (继承自Thread类)class MyThread ext…

激发你的灵感:16个精美视差效果网页设计作品

对于视差滚动(Parallax Scrolling),关注网页设计的朋友都不会陌生。在网页设计中,视差滚动是一种很特别的网页设计技术,通过让多层背景以不同的速度或者不同的方向移动形成 3D 运动效果,有很强的视觉冲击力…

Eclipse的Mockito模板

有时候,我想念树林里的树木-那是一段令人不安的长时间。 我最近才再次意识到这一点,在无数次中键入了一个更详细的模拟表达式。 有问题的语句是doAnswer(Answer)构造,使用涉及到的静态导入和泛型的东西进行编码总是很麻烦。 尽管我定期使用E…

使用 Web Tracing Framework 分析富 JS 应用的性能

来自谷歌的 Web Tracing Framework 包含一组工具和脚本,用于 JavaScript 相关代码的性能分析。它是重 JavaScript 应用程序的理想选择,而 JavaScript 仅用于简单的交互的网页可能没有必要。有一个手动嵌入选项和一个 Chrome 扩展,用于获取内部…

php yii2 获取表里最大的id_Yii2中自带分页类实现分页

1.首先写控制器层先引用pagination类use yiidataPagination;写自己的方法:function actionFenye(){$data Field::find(); //Field为model层,在控制器刚开始use了field这个model,这儿可以直接写Field,开头大小写都可以,为了规范,我写的是大写$pages new Pagination([totalCou…

android 操作系统升级,关于手机操作系统升级的问题

最近身边的好几个朋友问我操作系统方面问题,操作系统就是负责对计算机硬件进行直接控制以及管理的系统软件,它包含的功能也是多方面的,一般包括处理器管理,储存,文件,设备以及作业管理等等。把操作系统的内…

【完成整理】45套很酷的长影影 LOGO 设计

长阴影其实就是扩展了对象的投影,感觉是一种光线照射下的影子,通常采用角度为 45 度的投影,给对象添加了一份立体感。长阴影(Long Shadow)概念来自于最新非常流行的扁平化设计(Flat Design)。扁…

android 坐标点计算器,Android实现简易计算器

开之前我还是想问问老师,为什么一定要星期天前交作业呢?由于条件限制,作品是赶出来的不是细细琢磨出来的。所以在这版apk中功能较为简易,有待后期再不断更新与优化总体效果图如下布局activity_main.xml部分代码功能代码MainActivi…

1的恢复出厂设置在哪里_罗斯蒙特变送器怎么恢复出厂设置?

罗斯蒙特变送器怎么恢复出厂设置?特殊情况下,罗斯蒙特变送器需要恢复出厂设置。罗斯蒙特变送器进行出厂设置的方法非常简单,只需要用手操器或AMS设备管理器就能操作。罗斯蒙特手操器里有一个恢复出厂调整值–传感器量程调整命令,使用此命令就…

【技术累积】【点】【java】【25】Orderd

基础概念 Orderd是spring core中定义的一个接口,使用它以及相关的Comparator和Order注解,可以实现对元素的排序。 Order 直接先说下Order注解吧,使用场景较多。 Retention(RetentionPolicy.RUNTIME) Target({ElementType.TYPE, ElementType.M…

Guzzle – 构建 RESTful Web 服务的 PHP HTTP 框架

Guzzle 减轻了发送 HTTP 请求和创建 Web 服务客户端的痛苦。它包含建立一个强大的网络服务客户端的工具,包括:服务描述定义的输入和输出的 API,资源迭代器遍历分页资源,尽可能有效地发送大量的请求。 您可能感兴趣的相关文章特别推…

小米手机升级Android6,小米3能升级miui 6?小米3升级miui v6教程

小米3升级miui v6教程来咯~小编还带来了miui v6下载,MIUI V6系统有了很多的变化,小米3是可以升级miui6系统的哦~如果你不知道步骤的话,就请参考下文吧。第一步、下载工具包和线刷完整包,下载完成后解压(请检查线刷包文件后缀名是否…

第一次java作业

转载于:https://www.cnblogs.com/TuTu-winer/p/10591021.html

推荐25款很棒的 HTML5 前端框架和开发工具【下篇】

快速,安全,响应式,互动和美丽,这些优点吸引更多的 Web 开发人员使用 HTML5。HTML5 有许多新的特性功能,允许开发人员和设计师创建应用程序和网站,带给用户桌面应用程序的速度,性能和体验。 这里…

android18lazuli,The Rise And Fall Of Android 17

Hey guys, Tommy here. Today I’m bringing you another blog talking about Android 17. I’ve had mixed emotions on Android 17’s return in Dragon Ball Super since it originally happened. I feel like now with this whole Android 17‘a return is something I sho…

luogu P1462 通往奥格瑞玛的道路

嘟嘟嘟 这道题的题面相当的迷,我看了半天都没懂。最后看了题解的解释才懂。 他是这么个意思:对于所有能活着走到终点的路径,输出每一条路径中过路费最多的城市的最小值。 那么自然想到二分过路费,然后用dijkstra或spfa判断是否存在…