当前位置:文档之家› 北科大微机实验报告[38页].doc

北科大微机实验报告[38页].doc

《微机原理》

实验报告

班级:

学号:

姓名:

2013年6月

目录

第一部分上机实验

实验一显示程序实验 (1)

实验二数据传送实验 (3)

实验三数码转换程序实验 (5)

实验四运算类程序实验 (14)

实验五分支程序设计实验 (17)

第二部分接口实验

实验一简单I/O口扩展验 (1)

实验二存储器读写实验 (3)

实验三 8255并行口实验 (14)

实验四 8253定时器/计数器实验 (19)

第一部分上机实验

实验一显示程序实验

一、实验目的

1. 掌握在PC机上以十六进制形式显示数据的方法;

2. 掌握部分DOS 功能调用使用方法;

3. 熟悉Tddebug 调试环境和Turbo Debugger 的使用。

二、实验内容

一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS 功能调用完成一

些提示信息的显示。实验中可使用DOS 功能调用(INT 21H )。

(1) 显示单个字符输出

入口:AH=02H

调用参数:DL= 输出字符

(2) 显示字符串

入口:AH=09H

调用参数:DS:DX=串地址,’$’为结束字符

(3) 键盘输入并回显

入口:AH=01H

返回参数:AL= 输出字符

(4) 返回DOS 系统

入口:AH=4CH

调用参数:AL= 返回码

三、实验设备

PC微机一台

四、实验代码

DATA SEGMENT

MES DB 'Show a as hex:', 0AH,0DH,'$'

SD DB 'a'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START: MOV AX, DATA

MOV DS, AX

MOV DX, OFFSET MES

MOV AH, 09H

INT 21H

MOV DI, OFFSET SD

MOV AL, DS:[DI]

AND AL, 0F0H

SHR AL,4

CMP AL, 0AH

JB C2

ADD AL, 07H

C2: ADD AL, 30H

MOV DL, AL

MOV AH, 02H

INT 21H

MOV AL, DS:[DI]

AND AL, 0FH

CMP AL, 0AH

JB C3

ADD AL, 07H

C3: ADD AL, 30H

MOV DL, AL

MOV AH, 02H

INT 21H

MOV AX, 4C00H

INT 21H

CODE ENDS

END START

五、运行结果

实验二数据传送实验

一、实验目的

1. 熟悉Tddebug调试环境和Turbo Debugger的使用;

2. 掌握与数据有关的不同寻址方式。

二、实验所用设备

PC微机一台。

三、实验内容

将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。

参考实验程序:

DDATA SEGMENT ;定义源数据段

MSR DB "ONE WORLD ONE DREAM!$"

LEN EQU $- MSR; 源字符串的字节数,作为循环次数

DDATA ENDS

EXDA SEGMENT ;定义附加数据段

MSD DB LEN DUP(?)

EXDA ENDS

MYSTACK SEGMENT STACK ;定义堆栈段

DW 20 DUP(?)

MYSTACK ENDS

CODE SEGMENT ;定义代码段

ASSUME CS:CODE, DS:DDATA, ES:EXDA

START: MOV AX, DDATA

MOV DS, AX ;装载数据段寄存器

MOV AX, EXDA

MOV ES,AX ;装载附加数据段寄存器

MOV SI, OFFSET MSR ;设置SI (源传地址指针)

MOV DI, OFFSET MSD ;设置DI(目的传地址指针)

MOV CX, LEN; 源字符串的字节数,作为循环次

NEXT: MOV AL, [SI] ;开始传输数据, 以字节为单位,源串给目的串

MOV ES:[DI], AL; 要有段超越形式

INC SI

INC DI

DEC CX

JNZ NEXT

PUSH ES; 将附加段寄存器的段值赋给数据段寄存器

POP DS ;9号调用必用DS:DX的首地址形式,所以一定给DS、DX赋值

MOV DX, OFFSET MSD;而要显示的内容在附加段中

MOV AH, 9

INT 21H

MOV AX, 4C00H ;利用DOS功能调用返回DOS状态

INT 21H

CODE ENDS

END START

将程序主体部分的寄存器间接寻址方式改为相对寻址方式,则如下所示:

MOV BX, 0

MOV CX, LEN

NEXT: MOV AL, MSR[BX]

MOV ES:MSD[BX], AL

INC BX

LOOP NEXT

四、实验步骤

1.运行Tddebug软件,选择Edit菜单编写实验程序;

2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接;

3.使用Rmrun菜单中的Run,运行程序,观察运行结果;

4.使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后,

各寄存器及数据区的内容;

5.更改数据区中的数据,考察程序的正确性。

五、实验运行结果

实验三数码转换程序实验

一、实验目的

掌握不同进制数及编码相互转换的程序设计方法。

二、实验所用设备

PC微机一台。

三、实验内容

计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。计算机与外设间的数码转换关系如图3-1所示,数码对应关系如表3-1所示。

图3-1 计算机与外设间的数码转换关系

1.将ASCII码表示的十进制数转换为二进制数

十进制数可以表示为:Dn×10n+Dn-1×10n-1+…+D0×100

=Di×10i 其中Di代表十进制数1、2、3…9、0。

上式可以转换为:

ΣDi×10i=((…(Dn×10+Dn-1)×10)+Dn-2)×10+…+D1)×10+D0

由上式可归纳十进制数转换为二进制的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数结果。

相关主题
文本预览
相关文档 最新文档