微机系统及原理实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机系统及应用实验

实验报告

实验一DEBUG的启动及其基本命令的使用

实验内容:

6:设堆栈指针SP=2000H,AX=3000H,BX=5000H;请仿照例程的格式编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。

写出在DEBUG状态下编写、运行步骤6所要求的程序过程(要求包含源程序)以及调试所中遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

程序清单:

STACK SEGMENT STACK

DB 2003H DUP(0)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK

START: MOV AX,STACK

MOV SS,AX

MOV SP,2000H

MOV AX,3000H

MOV BX,5000H

PUSH AX

MOV AX,BX

POP BX

MOV AH,4CH

INT 21H

CODE ENDS

END START

运行及调试:

进入调试后,运行正常。

进行反汇编调试:

通过追踪指令观察SP、AX、BX变化可知对SP、AX、BX赋值正确。

将AX入栈后

用显示内存单元内容的命令D观察堆栈段中SP为1FFF,2000的内容

[1FFF]=00 ,[2000]=30 说明已经AX=3000已经放入到堆栈段中。

结果可以看出:AX=5000,BX=3000

结果完成正确!

实验二内存操作数及寻址方法

实验内容:

1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用字处理程序编辑程序,用masm.exe和link.exe对源程序进行汇编程和连接,用DEBUG 调试程序。

2、用masm和link 对以下程序进行汇编和连接,调试程序在DEBUG调试程序状态下进行。用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。

程序清单如下:

DATA SEGMENT

ORG 0300H

A D

B 12H,23H,34H,45H,56H,67H,78H,89H,9AH DATA ENDS

PROGNAM SEGMENT

ASSUME CS:PROGNAM,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AX,BX

MOV AX,0300H

MOV AX,[0300H]

MOV AX,[BX]

MOV SI,2

MOV AX,0001[BX]

MOV AX,[BX][SI]

MOV AX,0001[BX][SI]

MOV AH,4CH

INT 21H

PROGNAM ENDS

END START

对源程序文件汇编,生成目标文件

将目标文件LINK后,生成可执行文件如下:

进入debug调试

单步追踪执行:

AX=0B91,为数据段的首地址。

AX不变,将数据段的首地址送至DS。执行MOV AX,BX

AX同BX,清零。

执行MOV AX,0300H

AX=0300

执行MOV AX,[0300H]

AX=0300

可知MOV AX,0300H 与MOV AX,[0300H] 得到同样结果

AX均为0000.

将原文中的指令清单改为

DATA SEGMENT

A D

B 12H,23H,34H,45H,56H,67H,78H,89H,9AH

ORG 0300H

B DB 0BH,0CH

DATA ENDS

PROGNAM SEGMENT

ASSUME CS:PROGNAM,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AX,BX

MOV AX,0300H

MOV AX,[0300H]

MOV AX,[BX]

MOV SI,2

MOV AX,0001[BX]

MOV AX,[BX][SI]

MOV AX,0001[BX][SI]

MOV AH,4CH

INT 21H

PROGNAM ENDS

END START

单步执行后:

可知:随着程序进行,AX发生变化。

实验三算术运算指令

实验内容

编写三个完整的汇编语言源程序,完成以下计算。其中X、Y、Z、R、W均为存放16位带符号数单元的地址。

(1)Z←W+(Z-X)

(2)Z←W-(X+6)-(R+9)

(3)Z←(W*X)/(Y+6),R←余数

实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等

1、程序说明。说明程序的功能、结构。

2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

3、写出源程序清单和执行结果。

(1)Z←W+(Z-X)

汇编程序清单

DATA SEGMENT

X DW 10

Z DW 20

W DW 10

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AX,Z

SUB AX,X

ADD AX,W

MOV Z,AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

进入debug调试:

使用追踪指令T单步执行:

执行结果是将20放入AX中。AX=0014H

相关文档
最新文档