实验报告要求
1. 实验要求
1、预习 DEBUG 常用命令,预习所学指令。
2、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。
3、本实验只要求在 DEBUG 调试程序状态下进行,包括汇编程序、调试程序和执行程序。
2.实验目的
1、掌握 DEBUG 的基本命令及其功能,学会用 DEBUG 调试程序;
2、掌握 8086 CPU 指令的功能,体会寄存器的作用;
3、了解数据在内存中的存放方式和内存操作数的几种寻址方式;
4、了解简单指令的执行过程。
3.程序说明:
(1)说明程序基本结构,包括程序中各部分的功能。
(2)说明入口参数与出口参数,各种参数输入与输出的方式。
(3)说明程序中各部分所用的算法和编程技巧。
(4)说明主要符号和所用到寄存器的功能。
4.上机调试说明
(1)上机调试步骤。
(2)上机调试过程中遇到的问题是如何解决的。
(3)对调试源程序的中间结果和最终结果进行分析。
5.写出源程序清单及执行结果。
1、设 AX=3000H,BX=5000H;请编一程序段将 AX 和 BX 的内容进行交换。要求:
(1) 分别用 3 种方法实现;
(2) 用 DEBUG 进行汇编与调试;
(3) 记录每种方法执行结果
法一:
法二:
法三:
2、分别执行以下指令,比较立即寻址和直接寻址间的区别,寄存器寻址、寄存器间接寻址和相对寄存器寻址间的区别。
(1) Mov ax,1000H
Mov ax,[1000h]
(2) mov bx,2000H
mov ax,bx
mov ax,[bx]
mov ax,30[bx]
要求:(1)在执行以上指令时,记下当时 DS 数据段的值,写出每条指令执行后 AX 的结果。
(2)用 E 命令修改指令偏移地址“1000h”处的值,再次执行“Mov ax,[1000h]”,指令,记录执行结果。
解(1)mov ax,1000h
Mov ax,[1000h]
Mov ax,[1000h](修改1000地址的值)
(2)mov bx,2000h
Mov ax,bx
Mov ax,[bx]
Mov ax,30[bx]
3、已知有如下程序段:
MOV AX,5678H
MOV CL,4
STC ; 设 置 CF=1
在以上程序段的基础上,分别执行以下指令,观察 AX 值的变化。
ROL AX,CL
ROR AX,CL
SHL AX,CL
SHR AX,CL
SAR AX,CL
RCL AX,CL
RCR AX,CL
试在 DEBUG 下用 A 命令汇编以上程序段,用 T 命令跟踪,观察以下内容:
(1)每条指令执行完后,AX寄存器的内容是什么?
MOVAX,5678H AX=5678
MOV CL,4 AX=5678
STC ; 设 置 CF=1 AX=5678
ROL AX,CL AX=6785
ROR AX,CL AX=8567(运行了两次ror)
SHL AX,CL AX=5670
SHR AX,CL AX=0567
SAR AX,CL AX=0056
RCL AX,CL AX=0560
RCR AX,CL AX=0056
(2)每条指令执行完后,进位位 CF、符号位 SF 和零标志位 ZF 的值是什么?
CF:NC,NC,NC,CY,CY,CY,NC,NC,NC,NC,NC
SF:PL,PL,PL,PL,PL,PL,PL,PL,PL,PL,PL
ZF:NZ,NZ,NZ,NZ,NZ,NZ,NZ,NZ,NZ,NZ,NZ
实验结果:
MOV AX,5678H
MOV CL,4
STC ; 设 置 CF=1
ROL AX,CL
ROR AX,CL
SHL AX,CL
SHR AX,CL
SAR AX,CL
RCL AX,CL
RCR AX,CL
6.心得体会
本次的实验使我对debug的命令更加熟悉,并学会了debug的基本语法,收