8086汇编语言上机调试及基本操作.docx
- 文档编号:6824598
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:10
- 大小:19.73KB
8086汇编语言上机调试及基本操作.docx
《8086汇编语言上机调试及基本操作.docx》由会员分享,可在线阅读,更多相关《8086汇编语言上机调试及基本操作.docx(10页珍藏版)》请在冰豆网上搜索。
8086汇编语言上机调试及基本操作
课程编号1801770001
得分
教师签名
批改日期
深圳大学实验报告
课程名称:
微机原理及应用
实验名称:
8086汇编语言上机调试及基本操作
学 院:
物理科学与技术学院
指导教师:
报告人:
组号:
学号 实验地点 K302
实验时间:
2014 年 10 月 8 日
提交时间:
2014.10.15
1、实验目的:
(1)掌握常用DEBUG命令:
G,D,R,T,U,Q。
(2)掌握工具软件EMU8086。
(3)掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
(4)掌握简单的数值转换算法
2、实验说明:
计算机中的数值有各种表达方式,这是计算机的基础。
掌握各种数制之间的转换是一种基本功。
3、程序框图:
对于0-999(即000H-3E7H)范围内的二进制数
4、参考程序:
;将AX中的三位数拆为三个BCD码,并存入Result开始的三个单元
DATA SEGMENT ; 数据段
RESULT_1 DB 1
RESULT_2 DB 1
RESULT_3 DB 1
DATA ENDS
STACK SEGMENTSTACK ; 堆栈段
STA DB 64DUP(0)
STACK_TOP DB 0
STACK ENDS
CODE SEGMENT ; 代码段
ASSUMECS:
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 ;最后一行要按回车键
5、实验步骤
1)用EDIT编写源文件(在EDIT下不能用中文注释)。
2)在DOS窗口下
①、在DOS下编译、连接生成可执行文件。
②、在debug下调试该可执行文件,使用-U反汇编语句查看程序,找到指令结束地址。
③、使用-t单步执行命令
④、找到指令结束地址,使用-gcs:
0027执行指令。
⑤、使用dds:
0000查看数据段内的数据
2)Windows下
①、打开emu8086,新建一个exe文件,编辑程序
②、点击Compile对程序编译及链接,存储为example.exe文件。
③、点击run,进行仿真
6、实验结果:
1)用合适的编辑软件编辑以上源文件并存入合适目录;要求补充注释未注释的伪指令和指令;
DATA SEGMENT ; 数据段
RESULT_1 DB 1 ; 结果1是低八位,初始量为’1’
RESULT_2 DB 1 ; 结果1是低八位
RESULT_3 DB 1 ; 结果1是低八位
DATA ENDS ; 结束数据段
STACK SEGMENTSTACK ; 堆栈段
STA DB 64DUP(0);堆栈段初始化
STACK_TOP DB 0 ;栈顶初始化
STACK ENDS ;结束堆栈段
CODE SEGMENT ; 代码段
ASSUMECS:
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 AX,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和机器码。
两个环境生成的机器码的长度和内容如5实验步骤中所示,第2、5、7、10、14条指令的IP和机器码如下表所示:
DOS
Windows
指令
IP
机器码
IP
机器码
2
0003
8ED8
0003
8ED8
5
000A
8D264100
000A
BC4000
7
0011
B164
0010
B164
10
0018
8AC4
0017
8AC4
14
0020
A20100
001F
A20100
3)分别在debug和emu8086下调试该可执行文件,给出程序运行时的各段地址(CS=?
,DS=?
SS=?
ES=?
)举例说明debug的t,d,g,u等命令操作方法并对寄存器的变化作出解释;试改变被转换的三位数,并解释转换过程中标志寄存器中各标志位的结果;如何观察转换结果的变化?
①、debug和emu8086调试可执行文件的各段地址:
段地址
debug
emu8086
CS
1433
0716
DS
142D
0700
SS
142E
0711
ES
141D
0700
②、举例说明debug的t,d,g,u等命令操作方法并对寄存器的变化作出解释:
见5操作步骤部分。
③、试改变被转换的三位数,并解释转换过程中标志寄存器中各标志位的结果;如何观察转换结果的变化?
将2afH转换为355H:
2afH
355H
NV
无溢出
UP
串操作指令为自动增量指令
EI
允许中断请求
PL
符号为正
NZ
运算结果不为零
NA
辅助进位无进位
PO
1的个数为奇数
NC
无进位
7、实验总结
通过本次上机实验,初步了解了DOS环境下的EDIT、LINK、DEBUG和WINDOWS下的emu8086工具,且在计算机上进行了将0—999的二进制转换为十进制。
分别在DOS和Windows下编译、连接生成可执行文件并调试。
懂得了在DOS下使用dubug的U、T、D、G、R、Q命令,知道了在两种环境下的各类地址、标志及变量等的查看。
通过比较两种环境下的工具,发现开发汇编语言时,使用WINDOWS下的集成开发软件emu8086会更加的方便和有效率。
8、思考题:
1)用单步执行命令t运行程序,运行到movax,4c00h,int21h指令后,cs和IP寄存器内容前后有何变化?
产生变化的原因是什么?
CS由1433变为00A7,IP由002A变为107C。
原因是处理器用CS寄存器和IP寄存器中得内容组成的逻辑地址取下一条要执行的指令。
2)试写出将BCD转换成二进制码的汇编程序。
DATA SEGMENT ;定义数据段
RESULT_1 DB 1 ;为符号RESULT_1保留一个字节
DATA ENDS ;定义数据段结束
STACK SEGMENTSTACK ;定义堆栈段
STA DB 64DUP(0) ; 将指针为64的字节数推入堆栈
STACK_TOP DB 0 ;设置栈顶指针为0
STACK ENDS ;堆栈段定义结束
CODE SEGMENT ; 定义代码段
ASSUMECS:
CODE,DS:
DATA, ES:
DATA,SS:
STACK
;规定CS,DS,EX和SS的内容
START:
MOV AX,DATA ; DS初始化为DATA
MOV DS,AX ; 设置数据段
MOV AX,STACK ; SS初始化为STACK
MOV SS,AX ; 设置堆栈段
LEA SP,STACK_TOP ; 设置栈顶指针
BIN2BCDPROC
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHDI ;现场保护
MOVCX,3 ;16位二进制码转换成压缩BCD码最多需要3个字节
RE:
SUBDX,DX ;清零
DIVWORDPTR0AH ;AX除于10
MOVBL,DL ;将余数保存,因为DL=DX
SUBDX,DX ;DX清零
DIVWORDPTR0AH
SHLDL,4 ;抬到高位
ORBL,DL ;压缩BCD码
MOV[DI],BL ;保存压缩BCD码
INCDI ;准备保存下一个
DECCX ;计数
JNERE ;重复
POPDI
POPDX
POPCX
POPBX
POPAX
RET
MOV AX,4C00H ; 返回DOS
INT 21H ; 目标指向21H
CODE ENDS ; 代码段结束
END START ; 最后一行要按回车键
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8086 汇编语言 上机 调试 基本 操作
![提示](https://static.bdocx.com/images/bang_tan.gif)