微机原理及应用实验报告
- 格式:doc
- 大小:187.00 KB
- 文档页数:15
实 验 报 告
课 程 名 称
实 验 名 称
实 验 日 期
学 生 专 业
学 生 学 号
学 生 姓 名
教 师 姓 名
成 绩
南京理工大学机械工程学院
微机原理及应用 实验1 DEBUG 操作实验 实验2 汇编程序设计实验 实验3 8253定时/计数器实验 实验4 8255 并行接口实验 年 月 日 至 年 月 日
实验一DEBUG命令及其操作
一、实验目的
1.熟练掌握debug的常用命令,学会用debug来调试程序。
2.深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。
3.掌握各种寻址方法以及简单指令的执行过程。
二、实验要求
1.实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分析等。
2.本实验要求在PC机上进行。
3.本实验只要求在DEBUG调试状态下进行,包括汇编程序,调试程序,执行程序。三、实验内容
●实验内容1:学习用DEBUG调试工具进行源程序的输入、汇编、调试和执行。
实验报告要求:
1.写出运行结果;
2.小结debug常用命令及使用体会
答:1.原文已给出(略)
2.a 汇编
d显示内存单元内容
e修改单元内存内容
g执行命令
t单步(或多步)调试
n指定文件路径文件名(含扩展名)
u反汇编
r查看寄存器值及修改
l加载程序
w写盘命令
体会:提升学习热情和动手能力有助于理解代码执行过程
●实验内容2
设AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。
实验报告要求:
1.写出完成上述功能的程序段;
2.单步执行,并记录寄存器AX, BX及堆栈指针SP的值
答:
A100
Mov ax,3000 ;ax:3000 bx:0000 sp:ffee
Mov bx,5000 ;ax:3000 bx:5000 sp:ffee
Push ax ;ax:3000 bx:5000 sp:ffec
Mov ax,bx ;ax:5000 bx:5000 sp:ffec
Pop bx ;ax:5000 bx:3000 sp:ffee
Int 20
●实验内容3
设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H~304H连续单元装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下送入下面的程序,并用单步执行的方法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?
实验报告要求:
1.写出源操作数的寻址方式;
2.单步执行,并记录相关寄存器及存储单元的值
A100 ;给各内存单元赋值
Mov di,0300
Mov dx,0a
Mov cx,5
1oop1:mov[di],dx
Inc di
Inc dx
1oop loop1
程序清单如下:寻址方式和AX的内容
MOV BX,0300 立即寻址
MOV SI,0002 立即寻址
MOV AX,BX 寄存器寻址AX: 0300
MOV AX,0304H 立即寻址AX:0304
MOV AX,[0304H] 存储器直接寻址AX:ds:0304 内存单元的内容0EH
MOV AX,[BX] 寄存器间接寻址AX:ds:0300 内存单元的内容0AH
MOV AX,0001[BX] 基址相对寻址AX:ds:0301 内存单元的内容0BH
MOV AX,[BX][SI] 基址变址寻址AX:ds:0302 内存单元的内容0CH
MOV AX,0001[BX][SI] 基址变址寻址AX:ds:0303内存单元的内容0DH
●实验内容4
设AX=0002H,编写程序将AX的内容乘10,要求用移位的方法完成。
写出实现上实验报告要求:
1.述功能的程序段;
2.单步执行程序,记录每条指令的机器码及相关寄存器的内容
注意:左移指令用SHL,而不能使用SAL
A100
Mov ax,2 机器码:b80200 ax:0002 dx:0000 cl:00
Mov dx,0 机器码:ba0000 ax:0002 dx:0000 cl:00
Shl ax,1 机器码:d1e0 ax:0004 dx:0000 cl:00
Mov dx,ax 机器码:01d0 ax:0004 dx:0004 cl:00
Mov cl,2 机器码:b102 ax:0004 dx:0004 cl:02
Shl ax,cl 机器码:d3e0 ax:0010 dx:0004 cl:02
Add ax,dx 机器码:01d0 ax:0014 dx:0004 cl:02
Int 20 机器码:cd20 ax:0014 dx:0004 cl:02
实验二简单程序的编写及汇编连接
一、实验目的
1.熟练掌握编写汇编语言源程序的基本方法和基本框架。
2.学会编写顺序结构、分支结构和循环结构的汇编程序,掌握宏定义与宏调用的方法。3.掌握程序中数据的产生与数输出的方法。
4.熟悉建立源文件,进行汇编和连接的全过程,并对程序进行调试。
二、实验要求
1.实验前准备
①分析题目,将程序中的原始数据、中间结果和最终结果的存取方式确定好。
②写出算法或画出流程图。
③写出源程序。
④对程序中的结果进行分析,并准备好上机调试的过程。
2.本实验要求在PC机上进行。
3.汇编过程中出现问题,可用DEBUG进行调试。
三、实验内容
1.实验内容1
①编辑源程序(参考程序见下),建立.ASM文件;
②用MASM程序汇编,生成.OBJ文件;查看.LST文件的内容
③用LINK程序链接,生成.EXE文件;
④使用DEBUG命令将.EXE文件调进内存,执行后查看程序运行结果;
⑤使用DEBUG命令,检查各段在内存当中分配情况。
参考程序:
; exercize21
data segment
org 0200h
buffer dw 0, 1, -5, 10, 256, -128, -100, 45, 6, 3,
dw -15,-67, 39, 4, 20, -1668, -32766, 32765, -525,
dw 300
count equ ($-buffer)/2
max dw ?
data ends
stack segment stack 'stack'
db 100 dup ('s')
stack ends
code segment para 'code'