微机原理及应用实验报告

  • 格式:doc
  • 大小:187.00 KB
  • 文档页数:15

下载文档原格式

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

实 验 报 告

课 程 名 称

实 验 名 称

实 验 日 期

学 生 专 业

学 生 学 号

学 生 姓 名

教 师 姓 名

成 绩

南京理工大学机械工程学院

微机原理及应用 实验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'