微机原理与单片机实验报告

  • 格式:doc
  • 大小:7.77 MB
  • 文档页数:28

下载文档原格式

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

北京联合大学信息学院实验报告

课程名称:微型计算机原理学号:

姓名:

2012 年 6 月 9 日

目录

实验1 EMU8086模拟器的使用 (3)

实验2 数据传送指令的使用 (5)

实验3 多位十六进制加法运算实验 (9)

实验5 循环程序实验 (11)

实验6 由1 到100 求和实验 (13)

实验7 求表中正数_负数_0 的个数实验 (14)

实验8 数据排列实验(冒泡排序) (16)

实验9 系统功能调用(大小写转换) (18)

实验10 阶乘(递归运算) (20)

实验11 ProteusIO工程文件的建立 (21)

实验12 IO口读写实验(245、373) (22)

实验13 8255 接口实验 (24)

实验14 声光报警 (25)

实验总结 (28)

实验1 EMU8086模拟器的使用

一实验要求

利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看二实验目的:

熟悉EMU8086实验环境

三EMU8086环境:

1 模拟器编辑窗口

2 模拟器调试窗口

四实验内容

实验内容1:新建文件。

运行emu8086

1. 新建文件:单击“新建”按钮,选择COM模板,在模拟器编辑窗口中输入如下程序代码:

MOV AX, 1020H

MOV BX, 2030H

MOV AX, BX

ADD AX, BX

MOV [BX], AX

MOV [2032H], AX

HLT

2. 编译:单击“编译”按钮,对程序段进行编译;

3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1”保存在本地磁盘上。

4. 仿真:单击“仿真”按钮,打开模拟器调试窗口和源文件窗口。

5.在模拟器调试窗口中的寄存器组区,查看数据寄存器AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器IP;指针寄存器SP,BP;变址寄存器SI,DI;标志寄存器的值。

6.单击“单步前”按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。

7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为400毫秒,单击“全速”按钮,运行程序,

8.程序运行之后,在程序调试窗口中,选择[view]/[memory],查看模拟器环境中,内存单元0700:0100开始的连续10个单元的内容

9.将“存储器”中的地址改为0700:2030,查看开始的四个字节的内容,并思考其内容与程序

的关联。

10.将“存储器”中地址改为1000:0100,并将从其开始的连续10个单元的内容改为55H。实验内容2:运行范例

在模拟器编辑窗口中

1.点击典型范例

2.选择:hellow,word程序,编译,运行,观察结果。

修改程序(不要改原有DEMO程序),输出学号,姓名(汉语拼音或英文名)

pare numbers程序,编译,运行,观察结果。

修改程序(不要改原有DEMO程序),将比较对象改为7,编译,运行,观察结果。4.欣赏其它DEMO范例

实验2 数据传送指令的使用

一、实验要求

编写程序代码

指令,注释

二、实验目的

熟练掌握数据传送类指令的格式、功能和应用。

三、实验说明

emu8086环境下自建工程文件。

五、参考程序

1 运行以下3段程序,记录用到的4个通用寄存器的内容

1.

mov ax, 0abch dec ax

and ax, 00ffh mov cl, 4

sal al, 1 mov cl, al add cl, 78h push ax

pop bx

hlt

2.

mov sp, 2000h mov ax, 3000h mov bx, 5000h push ax

push bx

pop ax

hlt

3.

mov ax, 1234h mov bx, 5678h mov cx, 9abch push ax

push bx

push cx

pop di

pop si

pop dx

hlt

2 运行以下程序,记录AX寄存器的内容,逐条注释指令Mov [1000h], 5566h

mov ax, [1000h]

lea ax, [1000h]

hlt

六、编程,测试,记录程序运行结果。

实验3 多位十六进制加法运算实验

一、实验要求

编程实现多位十六进制数的加法运算。

二、实验目的

1、熟悉实验系统的编程和使用。

2、掌握使用加法类运算指令编程及调试方法。

3、掌握加法类指令对状态标志位的影响。

三、实验说明

由于本实验是三个十六位二制数相加运算,N4 为存放结果,其中N1 为1111H、N2 为2222H、N3 为3333H 所以结果应该为6666H

四、实验程序流程图

五、参考程序

DATA SEGMENT

NUM1 DW 1111H ;N1

NUM2 DW 2222H ;N2

NUM3 DW 3333H ;N3

NUM4 DW 0000H ;N4 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA BEG: MOV AX, DATA

MOV DS, AX

MOV SI, OFFSET NUM1

MOV AX, 0

ADD AX, [SI+0]

ADD AX, [SI+2]

ADD AX, [SI+4]

MOV [SI+6], AX

JMP $

CODE ENDS

END BEG

六、编程,测试,记录程序运行结果。