东华大学微机系统及原理实验报告.pdf
-
微机系统及应用实验
实验报告
实验一DEBUG的启动及其基本命令的使用
实验内容:
6:设堆栈指针SP=2000H,A*=3000H,B*=5000H;请仿照例程的格式
编一程序段将A*和B*的内容进行交换。请用堆栈作为两寄存器交换内容的中间
存储单元,用DEBUG调试程序进行汇编与调试。
写出在DEBUG状态下编写、运行步骤6所要求的程序过程(要求包含源程
序)以及调试所中遇到的问题是如何解决的,并对调试过程中的问题进行分析,
对执行结果进行分析。
程序清单:
STACKSEGMENTSTACK
DB2003HDUP(0)
STACKENDS
CODESEGMENT
ASSUMECS:CODE,SS:STACK
START:MOVA*,STACK
MOVSS,A*
MOVSP,2000H
.z.
-
MOVA*,3000H
MOVB*,5000H
PUSHA*
MOVA*,B*
POPB*
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
运行及调试:
进入调试后,运行正常。
进行反汇编调试:
通过追踪指令观察SP、A*、B*变化
可知对SP、A*、B*赋值正确。
将A*入栈后
用显示内存单元内容的命令D观察堆栈段中SP为1FFF,2000的内容
[1FFF]=00,[2000]=30说明已经A*=3000已经放入到堆栈段中。
结果可以看出:A*=5000,B*=3000
结果完成正确!
.z.
-
实验二内存操作数及寻址方法
实验内容:
1、设堆栈指针SP=2000H,A*=3000H,B*=5000H;请编一程序段将A*
和B*的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用字
处理程序编辑程序,用masm.e*e和link.e*e对源程序进行汇编程和连接,用
DEBUG调试程序。
2、用masm和link对以下程序进行汇编和连接,调试程序在DEBUG调试
程序状态下进行。用单步执行的方法,分析每条指令源地址的形成过程,当数据
传送完毕时,A*中的内容是什么。
程序清单如下:
DATASEGMENT
ORG0300H
ADB12H,23H,34H,45H,56H,67H,78H,89H,9AH
DATAENDS
PROGNAMSEGMENT
ASSUMECS:PROGNAM,DS:DATA
START:MOVA*,DATA
MOVDS,A*
MOVA*,B*
MOVA*,0300H
MOVA*,[0300H]
MOVA*,[B*]
MOVSI,2
MOVA*,0001[B*]
MOVA*,[B*][SI]
MOVA*,0001[B*][SI]
MOVAH,4CH
INT21H
PROGNAMENDS
ENDSTART
对源程序文件汇编,生成目标文件
将目标文件LINK后,生成可执行文件如下:
.