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模板),该程序运行结果是什么

相关文档
最新文档