东华大学微机系统及原理实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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