任务一

DOSBOX环境下用edit命令编写汇编源程序t1.asm,如下图:

保存后,输入masm,使用该编译工具按下图步骤进行编译连接:

显示no stack segment,即可输入源程序名字,执行。

(1)运行程序,输出结果如下:

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

1、使用r命令查看,观察ds和cs的值,看是否满足(cs)=(ds)+10H

可以看出满足(cs)=(ds)+10。

2、psp程序段前缀的头两个字节是CD 20,用debug查看psp的内容,

发现psp程序段前缀头两个字节确实是CD 20。

3、用u命令对t1.exe进行反汇编,观察得到的源代码:

4、使用t命令和p命令单步调试,观察结果,注意遇到int命令时用p命令:

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

这里我把line4的dl改为5,line9的dl改为9,编译连接步骤如(1),执行结果如下:

任务二

编写汇编源程序t2.asm如下:

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

如直接运行没有左上方没有输出结果,输入cls清屏后再运行,得到结果如下:

(2)重新打开t2.exe,将源代码中line7的0433h改为0432h,line10的0436h改为0439h,重新汇编、连接、运行,使用cls清屏后观察运行结果:

看到结果为红色数值29。

(3)重新打开t2.exe,将源代码中line7的0433h改为0333h,line10的0436h改为0336h,重新汇编、连接、运行,使用cls清屏后观察运行结果:

得到蓝色数值36。

总结与体会

首先,在本次实验,我主要学会了对汇编源程序的编译、连接、与执行。这些都是书上有的,如果认真看书,就会很简单了。

我去网上查了一下t命令与p命令的区别,是这样解释的:单步执行命令p与单步跟踪命令t的区别在于对待call类命令的方式上。对于t命令,当碰到“call p1”命令时,单步跟踪命令t会进入该进程,再一步步地执行;而单步执行命令p会按照一般程序执行,而不会进入子程序中。对此我不是很明白。

从任务一,我们可以看到输出的结果为line4和line9中dl的值。

对比任务二中(2)和(3), mov [bx],043xh中的04决定输出的颜色,3x决定形状,其中x是十进制数字。

转载于:https://www.cnblogs.com/ljzww/p/9970650.html

汇编实验 三 编程、编译、连接、跟踪相关推荐

  1. 汇编实验三:三个有符号数比较大小

    汇编实验三:三个有符号数比较大小 问题 源码 利用库函数io.inc 问题 给出三个有符号数,编写一个比较相等关系的程序: (1) 如果这三个数都不相等,则显示0: (2) 如果这三个数中有两个数相等 ...

  2. 实验三 编程、编译、连接、跟踪

    注意:一.要用P命令执行int 21. 二.使用Q命令退出Debug,返回到command中. (为了方便操作,我将原本安装在D盘的masm文件夹转移到了C盘.) 1. 练习1 第1步,编写汇编源程序 ...

  3. 实验三编程、编译、连接、跟踪

    实验结论: 1.练习1 (1) (2) 将值分别都改为7之后 (3) 不满足 PSP的头两个字节不是CD 20 2.练习2 (1) (2) (3) 总结与体会: 通过本章的学习,我知道了怎么编辑,编译 ...

  4. 实验三 编程、编译、连接、跟踪

    1. 练习1 第1步,编写汇编源程序t1.asm, 源程序代码如图1-1所示. 第2步,对源程序 t1.asm 进行汇编.连接.运行.调试 (1) 运行程序,观察程序输出结果是什么? 36 (2) 将 ...

  5. 汇编实验三 汇编语言程序的调试与运行

    一.实验目的 1.熟练掌握编写汇编语言原程序的基本框架 2.熟悉在PC机上编辑.汇编.连接.调试和运行汇编语言程序的过程. 二.实验内容 一个汇编语言程序从写出到最终执行的简要过程如下: 1) 编辑 ...

  6. SCAU 汇编实验三

    目录 实验前置知识 1.将BX中的无符号数以二进制形式输出 2.将BX中的无符号数以八进制形式输出 3.将BX中的无符号数以十六进制形式输出 4.将BX中的无符号数以十进制形式输出 5.将BX中的有符 ...

  7. 计算机原理汇编程序实验报告的总结,计算机组成原理及汇编实验报告

    计算机组成原理及汇编实验报告 (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 17.90 积分 中南大学中南大学计算机组成原理及汇编实验报告计算机组 ...

  8. arm汇编和c语言混合编程实验报告,实验三C语言和ARM汇编混合编程指导书.doc

    实验三C语言和ARM汇编混合编程指导书 实验三 1. 实验目的 掌握C语言和ARM汇编混合编程方法. 2. 实验设备 硬件:PC 机 一台 软件:Windows98/XP/2000 系统,ADS 1. ...

  9. linux内核启动分析 三,Linux内核分析 实验三:跟踪分析Linux内核的启动过程

    贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 ...

  10. Elixir元编程-第三章 编译时代码生成技术进阶

    Elixir元编程-第三章 编译时代码生成技术进阶 注:本章内容来自 Metaprogramming Elixir 一书,写的非常好,强烈推荐.内容不是原文照翻,部分文字采取意译,主要内容都基本保留, ...

最新文章

  1. Expo大作战(三十六)--expo sdk api之 ImagePicker,ImageManipulator,Camera
  2. [YTU]_2624( B 结构体--统计投票)
  3. UML类图中的各种箭头代表的含义(转自:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html)
  4. execjs执行js出现window对象未定义时的解决_10个常见的JS语言错误总汇
  5. 【渝粤教育】电大中专幼儿园课程论 (1)作业 题库
  6. 数据结构与算法2——数组
  7. excel三次样条函数_用于数字成像的双三次插值技术?
  8. ESXi 内存分配原理
  9. C#动态调用WCF接口,两种方式任你选。
  10. python基础知识 ~ 异常处理与导入
  11. 六、软考·系统架构师——UML建模工具
  12. 计算机上无开根号功能 怎么计算机,攻略:2019年中级会计师无纸化考试 计算器怎么开根号?...
  13. 纽博涛在CSDN上开通博客啦
  14. C++ 动态申请二维数组与二维数组传参
  15. 用户分享率高达87% KilaKila恋爱小程序的女性营销逻辑
  16. 视频去声音 免费中文版声音处理软件 轻松教你去除视频声音
  17. 如何查看自己是否被微信好友删除
  18. java导出excel下载后文件损坏无法修复
  19. ulimit -u
  20. 研究中学习【方法】 | Heckman二值选择模型

热门文章

  1. 花粉俱乐部服务器维护,花粉俱乐部打不开进不去怎么回事?花粉俱乐部加载数据失败怎么解决?...
  2. linux快捷删除151617文件,mengzhaoliang
  3. linux 能降低内核,Linux 内核移除并整改了导致性能下降 50% 的 STIBP
  4. 中运量71路线路图_上海新增公交线路835路 连接中运量71路与虹桥枢纽
  5. 机器学习常用评价指标总结
  6. word2vec(一)——skip-gram原理理解
  7. 广义线性模型总结(GLM)
  8. python的装饰器、迭代器、yield_Python学习日记(5)简单了解迭代器、生成器、装饰器、上下文管理器...
  9. java 多线程 异步调用
  10. 数据库学习笔记3-隔离级别 Read Uncommitted