8086汇编语言上机调试及基本操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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