8086汇编语言上机调试及基本操作文档格式.docx

上传人:b****6 文档编号:19846116 上传时间:2023-01-10 格式:DOCX 页数:10 大小:19.73KB
下载 相关 举报
8086汇编语言上机调试及基本操作文档格式.docx_第1页
第1页 / 共10页
8086汇编语言上机调试及基本操作文档格式.docx_第2页
第2页 / 共10页
8086汇编语言上机调试及基本操作文档格式.docx_第3页
第3页 / 共10页
8086汇编语言上机调试及基本操作文档格式.docx_第4页
第4页 / 共10页
8086汇编语言上机调试及基本操作文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

8086汇编语言上机调试及基本操作文档格式.docx

《8086汇编语言上机调试及基本操作文档格式.docx》由会员分享,可在线阅读,更多相关《8086汇编语言上机调试及基本操作文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

8086汇编语言上机调试及基本操作文档格式.docx

提交时间:

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 

RESULT_3 

ENDS

STACK 

SEGMENTSTACK 

堆栈段

STA 

64DUP(0)

STACK_TOP 

0

CODE 

代码段

ASSUMECS:

CODE,DS:

DATA, 

ES:

DATA,SS:

START:

MOV 

AX,DATA

DS,AX 

设置数据段

AX,STACK

SS,AX 

设置堆栈段

LEA 

SP,STACK_TOP 

设置栈顶指针

AX,2afH 

CL,100 

DIV 

CL 

RESULT_1,AL 

除以100,得百位数 

AL,AH 

AH,0 

CL,10 

RESULT_2,AL 

余数除以10,得十位数 

RESULT_3,AH 

余数为个位数 

AX,4C00H 

返回DOS 

INT 

21H 

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)用合适的编辑软件编辑以上源文件并存入合适目录;

要求补充注释未注释的伪指令和指令;

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

结果1是低八位

结束数据段

64DUP(0);

堆栈段初始化

栈顶初始化

结束堆栈段

假定伪指令

AX,DATA 

把具体的DATA送至寄存器中

AX,STACK 

把STACK送至寄存器中

AX,2afh 

把立即数2afh送至寄存器 

被除数为100 

8位寄存器 

余数为下一个除数 

高8位清零 

被除数是10 

8位寄存器 

余数是个位数 

结束代码段 

START 

最后一行按回车键

2)分别在DOS和Windows下编译、连接生成可执行文件,比较两个环境下生成的机器码的长度和内容;

试指出第2、5、7、10、14条指令的IP和机器码。

两个环境生成的机器码的长度和内容如5实验步骤中所示,第2、5、7、10、14条指令的IP和机器码如下表所示:

DOS

Windows

指令

IP

机器码

2

0003

8ED8

5

000A

8D264100

BC4000

7

0011

B164

0010

10

0018

8AC4

0017

14

0020

A20100

001F

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

②、举例说明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转换成二进制码的汇编程序。

定义数据段

为符号RESULT_1保留一个字节

定义数据段结束

定义堆栈段

64DUP(0) 

将指针为64的字节数推入堆栈

设置栈顶指针为0

堆栈段定义结束

定义代码段

STACK

规定CS,DS,EX和SS的内容

DS初始化为DATA

SS初始化为STACK

BIN2BCDPROC

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHDI 

现场保护

MOVCX,3 

16位二进制码转换成压缩BCD码最多需要3个字节

RE:

SUBDX,DX 

清零

DIVWORDPTR0AH 

AX除于10

MOVBL,DL 

将余数保存,因为DL=DX

DX清零

DIVWORDPTR0AH

SHLDL,4 

抬到高位

ORBL,DL 

压缩BCD码

MOV[DI],BL 

保存压缩BCD码

INCDI 

准备保存下一个

DECCX 

计数

JNERE 

重复

POPDI 

POPDX

POPCX

POPBX

POPAX

RET 

目标指向21H 

代码段结束 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1