- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验指导书1_Debug和EMU8086软件使用
实验一 Debug和Emu8086软件的使用
?一、?实验目的:
(1)熟悉Debug软件和汇编语言开发环境。
(2)掌握Emu8086软件使用方法。
(3)了解汇编语言的程序结构、调试一个简单的程序。
(4)理解寻址方式的意义。
二、?实验内容及要求:
1、Debug的使用
根据课本35页的实验1中的预备知识的说明,学习使用Debug软件。
2、Emu8086的使用
(1)打开桌面上的Emu8086的图标,出现如图所示的对话框,选择【继续……】
首次打开软件,界面中默认已有一段小程序。该程序实现在屏幕上显示三段字符串的功能。若用户需要自己重新编程,可点击工具栏的【新建】图标,出现如图所示的对话框,选择编程所采用的模板。
选择不同的模板,在程序源代码中会出现如下标记:
#MAKE_COM# 选择COM模板
#MAKE_BIN# 选择BIN模板
#MAKE_EXE# 选择EXE模板
#MAKE_BOOT# 选择BOOT模板
#MAKE_COM#
最古老的一个最简单的可执行文件格式。采用此格式,源代码应该在100H后加载(即:源代码之前应有ORG 100H)。从文件的第一个字节开始执行。 支持DOS和Windows命令提示符。
#MAKE_EXE#
一种更先进的可执行文件格式。源程序代码的规模不限,源代码的分段也不限,但程序中必须包含堆栈段的定义。您可以选择从新建菜单中的EXE模板创建一个简单的EXE程序,有明确的数据段,堆栈段和代码段的定义。
程序员在源代码中定义程序的入口点(即开始执行的位置),该格式支持DOS和Windows命令提示符。
这两种模板是最常用的模板
(2)选择COM模板,点击【确定】,软件出现源代码编辑器的界面,如图所示:
在源代码编辑器的空白区域,编写如下一段小程序:
MOV AX, 5
MOV BX, 10
ADD AX, BX
SUB AX, 1
HLT
代码编写结束,点击菜单【文件】【另存为……】,将源代码换名保存。本例将源代码保存为001.asm。点击工具栏的【模拟】按钮,如果程序有错误不能编译,出现如图所示的界面:
点击错误提示,即可选择源代码中相应的错误的行,在此处更改源代码。上例中的提示“Cannot use Segment Register with an Immediate Value”,?指的是不能使用立即数给段寄存器赋值。
如果源程序无错误,则编译通过,出现如图所示的界面:
点击【单步执行】,程序将每执行一条指令便产生一次中断。点击【运行】,程序将从第一句直接运行到最后一句。
界面的左侧可以观察程序运行过程中,各个寄存器的值的变化。若是查看内存区域的值,可以选择菜单【查看】【外部存储器】,出现如下界面:
默认的数据段DS=0B56,若想查看数据段中偏移为0100的内存区域,则可以再图中的段和偏移文本框中填上适当的数值之后,点击回车键,如图所示:
单步运行该程序段,观察各寄存器的变化。
三、实验作业
1、请按要求单步调试教材P45实验任务(1)中的代码。使用表格记录每一条指令执行后相关寄存器的内容(采用COM模板)
2、根据教材P45实验任务(2)的要求,完成完整的程序(采用COM模板)。贴完整程序代码,截图记录内存、寄存器的值。
3、EXE模板的使用。
(1)在emu8086中调试运行该程序。请单步执行该程序,使用表格记录下每执行一句话后相应寄存器内容的变化情况。
(2)该程序运行结果是什么?(截图)
(3)改变源程序的某些代码,看看结果是否会有不同?如果出现语法错误,尝试修正它。
文档评论(0)