Debug基本命令及汇编基本指令

实验报告要求

 

 

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的基本语法,收

你可能感兴趣的:(汇编)