Emu8086软件的使用

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Emu8086软件的使用
一、实验目的:
(1)熟悉汇编语言开发环境。

(2)掌握Emu8086软件使用方法。

(3)了解汇编语言的程序结构、调试一个简单的程序。

(4)理解寻址方式的意义。

二、实验内容及要求:
1、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的内存区域,则可以再图中的段和偏移文本框中填上适当的数值之后,点击回车键,如图所示:
单步运行该程序段,观察各寄存器的变化。

2、请调试程序:
DATA SEGMENT ;定义数据段
DATA1 DB 0F8H,60H,0ACH,74H,3BH ;被加数
DATA2 DB 0C1H,36H,9EH,0D5H,20H ;加数
DATA ENDS ;数据段结束
CODE SEGMENT ;定义代码段
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX ;初始化DS
MOV CX,5 ;循环次数送CX
MOV SI,0 ;置SI初值为0
CLC ;清CF标志
LOOPER: MOV AL,DATA2[SI] ;取一个字节加数
ADC DATA1[SI],AL ;与被加数相加
INC SI ;SI加1
DEC CX ;CX减1
JNZ LOOPER ;若不等于0,转LOOPER
MOV AH,4CH
INT 21H ;返回DOS
CODE ENDS ;代码段结束
END START ;源程序结束
记录每一条指令执行后相关寄存器的内容(采用EXE模板),该程序运行结果是什么。

相关文档
最新文档