8086汇编语言上机调试及基本操作

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

深 圳 大 学 实 验 报 告

课程名称: 微机原理实验

实验名称: 8086汇编语言上机调试及基本操作

学院: 物理科学与技术学院

组号: 指导教师: 李雄军

报告人:林成业 学号: 2012180073

实验地点: 科技楼302 实验时间:2014年9月24日

实验报告提交时间: 2014年10月15日

得分 教师签名 批改日期

课程编号

题目类型

一、实验目的:

(1)掌握常用DEBUG命令: G,D,R,T,U,Q。

(2)掌握工具软件EMU8086。

(3)掌握完整程序设计方法的格式,能正确书写数据段,代码段等。

(4)掌握简单的数值转换算法

二、实验原理

1.实验说明:

计算机中的数值有各种表达方式,这是计算机的基础。掌握各种数制之间的转换是一种基本功。

2.程序框图:对于0-999(即000H-3E7H)范围内的二进制数

3.参考程序:

; 将AX中的三位数拆为三个BCD码, 并存入Result 开始的三个单元

DATA SEGMENT; 数据段

RESULT_1 DB 1

RESULT_2 DB 1

RESULT_3 DB 1

DATA ENDS

STACK SEGMENT STACK ; 堆栈段

STA DB 64 DUP(0)

STACK_TOP DB 0

STACK ENDS

CODE SEGMENT; 代码段

ASSUME CS:CODE , DS:DATA , ES:DATA , SS:STACK

START:

MOV AX, DATA

MOV DS, AX ; 设置数据段

MOV AX, STACK

MOV SS, AX ; 设置堆栈段

LEA SP, STACK_TOP ; 设置栈顶指针

MOV AX, 2afH

MOV CL, 100

DIV CL

MOV RESULT_1, AL ; 除以100, 得百位数

MOV AL, AH

MOV AH, 0

MOV CL, 10

DIV CL

MOV RESULT_2, AL ; 余数除以10, 得十位数

MOV RESULT_3, AH ; 余数为个位数

MOV AX,4C00H ; 返回DOS

INT 21H ;

CODE ENDS

END START ; 最后一行要按回车键

三、实验及报告要求:

1)用合适的编辑软件编辑以上源文件并存入合适目录;要求补充注释未注释的

伪指令和指令;

2)分别在DOS和Windows下编译、连接生成可执行文件,比较两个环

境下生成的机器码的长度和内容;试指出第2、5、7、10、14条指令的IP和机器码。

3)分别在debug和emu8086下调试该可执行文件,给出程序运行时的各段

地址(CS=?,DS=?SS=?ES=?)举例说明debug的t,d,g,u等命令操作方法并对寄存器的变化作出解释;试改变被转换的三位数,并解释转换过程中标志寄存器中各标志位的结果;如何观察转换结果的变化?4)写出完整的实验报告,特别是“实验结果”与“实验总结体会”部分,是评分的

主要依据。

5)实验总结中要求结合实验中的经验、教训或体会对汇编语言格式、调试方法

和微机原理学习方法作出总结。

四、实验结果与分析

1.建立汇编源程序ASM文件。

DATA SEGMENT 数据段

RESULT_1 DB 1 结果1是低八位,初始量为’1’

RESULT_2 DB 1 结果1是低八位

RESULT_3 DB 1 结果1是低八位

DATA ENDS 结束数据段

STACK SEGMENT STACK 堆栈段

STA DB 64 DUP(0) 堆栈段初始化

STACK_TOP DB 0 栈顶初始化

STACK ENDS 结束堆栈段

CODE SEGMENT 代码段

ASSUME CS:CODE , DS:DATA , ES:DATA , SS:STACK

START: 假定伪指令

MOV AX, DATA 把具体的DATA送至寄存器中

MOV DS, AX 设置数据段

MOV AX, STACK 把STACK送至寄存器中

MOV SS, AX 设置堆栈段

LEA SP, STACK_TOP 设置栈顶指针

MOV X, 2afh 把立即数2afh送至寄存器

MOV CL, 100 被除数为100

DIV CL 8位寄存器

MOV RESULT_1, AL 除以100, 得百位数

MOV AL, AH 余数为下一个除数

MOV AH, 0 高8位清零

MOV CL, 10 被除数是10

DIV CL 8位寄存器

MOV RESULT_2, AL 余数除以10, 得十位数

MOV RESULT_3, AH 余数是个位数

MOV AX,4C00H 返回DOS

INT 21H

CODE ENDS 结束代码段

END START 最后一行按回车键

2.分别在DOS和Windows下编译、连接生成可执行文件,比较两个环境下生成的机器码的长度和内容;试指出第2、5、7、10、14条指令的IP和机器码。

(1)DOS

相关文档
最新文档