微机原理及接口技术实验指导书文档格式.docx

上传人:b****4 文档编号:7853728 上传时间:2023-05-09 格式:DOCX 页数:57 大小:833.66KB
下载 相关 举报
微机原理及接口技术实验指导书文档格式.docx_第1页
第1页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第2页
第2页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第3页
第3页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第4页
第4页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第5页
第5页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第6页
第6页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第7页
第7页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第8页
第8页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第9页
第9页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第10页
第10页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第11页
第11页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第12页
第12页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第13页
第13页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第14页
第14页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第15页
第15页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第16页
第16页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第17页
第17页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第18页
第18页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第19页
第19页 / 共57页
微机原理及接口技术实验指导书文档格式.docx_第20页
第20页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理及接口技术实验指导书文档格式.docx

《微机原理及接口技术实验指导书文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术实验指导书文档格式.docx(57页珍藏版)》请在冰点文库上搜索。

微机原理及接口技术实验指导书文档格式.docx

START:

MOVAH,02H

MOVDL,41H

INT21H

INT20H

CODEENDS

ENDSTART

(2)屏幕上显示字符串“HOWAREYOU?

DATASEGMENT

BUFDB'

HOWAREYOU?

$'

DATAENDS

ASSUMECS:

CODE,DS:

DATA

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETBUF

MOVAH,09H

MOVAH,4CH

CODEENDS

 

实验二分支程序设计实验

一、实验目的

1.掌握分支程序的结构。

2.掌握分支程序的设计、调整方法。

二、实验设备

TDN86/88教学实验系统一台。

三、实验内容及步骤

设计一数据块间的搬移程序

设计思想:

程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成

为目的数据块)。

源数据块和目的数据块在存储中可能有三种情况,如图3-1所示。

图3-1源数据块与目的数据块在存储中的位置情况

对于两个数据块分离的情况,如图3-1(a),数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。

但是对于有重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭到破坏,可有如下结论:

当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据,如图3-1(b)所示。

当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据,如图3-1(c)所示。

参考流程:

如图3-2所示。

图3-2程序流程图

实验程序

DW64DUP(?

MOVCX,0010H

MOVSI,3100H

MOVDI,3200H

CMPSI,DI

JAA2

ADDSI,CX

ADDDI,CX

DECSI

DECDI

A1:

MOVAL,[SI]

MOV[DI],AL

DECCX

JNEA1

JMPA3

A2:

INCSI

INCDI

JNEA2

A3:

ENDSTART

实验步骤

(1)输入程序并检查无误,经汇编、连接后装入系统。

(2)用E命令在以SI为起址的单元中填入16个数。

(3)G=↙,运行实验程序。

(4)用D命令查看DI为起址的单元中的数据是否与SI单元中数据相同。

(5)试改变SI、DI的取值,观察在三种不同的数据块情况下程序的运行。

四.思考题

为什么当源数据块首址>

目的块首址时,应从数据块首地址开始传送数据。

而当

数据块首址<

目的块首址时,应从数据块末地址开始传送数据?

实验三循环程序设计

一.实验目的

1.加深对循环结构的理解。

2.掌握循环结构程序设计的方法。

3.熟练掌握调试循环程序的方法。

二.实验设备

三.实验内容及步骤

1.编制程序

计算S=1+2×

3+3×

4+4×

5+…+N(N+1),直到N(N+1)项大于200为止。

编写实验程序,计算上式的结果,参考流程图如图3-3所示。

 

图3-3程序流程图

MOVDX,0001H

MOVBL,02H

MOVAL,BL

INCBL

MULBL

ADDDX,AX;

结果存于DX中

CMPAX,00C8H;

判断N(N+1)与200的大小

JNAA1

JMPA2

(1)编写实验程序,编译、链接无误后装入系统;

(2)运行程序,然后再停止程序运行;

(3)运算结果存储在寄存器DX中,查看结果是否正确;

(4)可以改变N(N+1)的条件来验证程序功能是否正确,但要注意,结果若大于FFFFH将产生数据溢出。

2.求某数据区内负数的个数

设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。

为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得到区内所包含负数的个数。

实验程序流程图如图3-4所示。

图3-4程序流程图

MOVDI,3000H;

数据区首地址

MOVCL,[DI];

取数据个数

XORCH,CH

MOVBL,CH

INCDI;

指向第一个数据

MOVAL,[DI]

TESTAL,80H;

检查数据首位是否为1

JEA2

INCBL;

负数个数加1

LOOPA1

MOV[DI],BL;

保存结果

ENDSTART 

(1)按实验流程编写实验程序;

(2)编译、链接无误后装入系统;

(3)键入E3000,输入数据如下:

3000=06(数据个数)

3001=12

3002=88

3003=82

3004=90

3005=22

3006=33

(4)先运行程序,然后停止程序运行;

(5)查看3007内存单元或寄存器BL中的内容,结果应为03;

(6)可以进行反复测试来验证程序的正确性。

实验四排序和检索程序设计

1.进一步掌握多重循环循环程序的结构。

2.进一步掌握多重循环程序的设计、编写及调试方法。

二、实验准备

1.复习教材中有关多重循环程序设计的相关内容。

2.复习排序和检索算法

3.编写程序1:

将内存中的10个无符号数(长度为2字节)由大到小排序。

DATASEGMENT

XDW24H,32H,01H,02H,44H,32H,05H,00H,12H,11H

MOVCX,10

DECCX

LOOP1:

MOVDI,CX

MOVBX,0

LOOP2:

MOVAX,X[BX]

CMPAX,X[BX+2]

JGELOOP3

XCHGAX,X[BX+2]

MOVX[BX],AX

LOOP3:

ADDBX,2

LOOPLOOP2

MOVCX,DI

LOOPLOOP1

INT21H

CODEENDS

4.编写程序2:

在上述已排好序的数据区里查找某一个数。

若找到,显示‘Y’,否则显示‘N’。

XDW44H,32H,32H,24H,12H,11H,05H,02H,01H,00H

STRING1DB'

Y'

0DH,0AH,'

STRING2DB'

N'

0DH,0AH,'

XORAX,AX

MOVAX,00H

CMPAX,X[BX]

JZLOOP2

INCBX

LOOPLOOP1

JMPLOOP3

MOVDX,OFFSETSTRING1

MOVAH,09H;

输出相应的字母

JMPEXIT

MOVDX,OFFSETSTRING2

EXIT:

三、实验内容

1.将编写好的程序1输入、汇编、连接并通过Debug调试和检查运行结果。

无序数组X:

24H,32H,01H,02H,44H,32H,05H,00H,12H,11H

排序后的数组从DS:

0000-0010从大到小排列:

2.将编写好的程序2输入、汇编、连接并通过Debug调试和检查运行结果。

测试的数据00H保存在AX寄存器中:

四、实验报告要求

1.整理出运行正确的源程序清单(加以注释),并画出程序流程图。

2.如何修改程序1对数据由小到大排序。

只要把程序中JGELOOP3,JGE(>

=)条件改成JBS(<

=)

3.说明多重循环程序设计中应该注意的问题。

应该注意循环的条件和循环的次数,注意别出现死循环

4.上机调试过程中遇到的问题是如何解决的。

此次实验较为简单,因为排序算法书上有,只出现一个小问题,就是输入的时候,调用OIH中断,只能输入一个字符存在AX中。

而不能把输入的数字存在AX中。

只会存储相应ACLL码

排序程序设计实验

(1)写出汇编、连接、及运行程序查看结果的步骤如下:

1、程序源代码:

datasegment

var1db09h,08h,07h,06h,05h,04h,03h,02h,01h,00h

var2db?

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movcx,000ah;

指定数据个数及循环次数

leasi,var2;

取数据区VAR2的偏移地址

l1:

deccx

jzaa

pushsi

pushcx

cc:

decsi

moval,[si]

decsi

cmpal,[si];

取相邻的两个数进行比较

jabb

xchgal,[si]

mov[si+01],al

bb:

incsi

loopcc

popcx

popsi

jmpl1

aa:

movah,4ch

int21h

codeends

endstart

2、汇编

3、连接

4、运行程序

第一次数据区的数值一次为:

09h,08h,07h,06h,05h,04h,03h,02h,01h,00h

运行

结果

第二次数据区的数值一次为:

02h,03h,05h,01h,04h,06h,0Ah,0Bh,09h,08h

(2)本次实验程序的流程图

Y

N

(3)1、内循环部分:

cc:

外循环部分:

2、程序中对SI,CX压栈及弹栈的意义:

对SI、CX进行保护。

(4)实验小结

通过此次实验使我进一步了解了汇编语言编程过程。

对于汇编的常用指令有更深的理解了。

实验五8255并行接口应用实验

一.实验目的

1.掌握8255工作方式的编程设计。

2.8255与外部设备进行连接的应用。

二.实验设备与材料:

TDN86/88教学实验系统一台,扁平插线若干。

三.实验原理:

INTEL8255是一种通用的可编程并行I/O接口芯片,是专为INTEL公司的微处理器设计的,也可用于其它系列的微型机系统中。

利用8086汇编指令系统,编制初始化程序,可以变更8255的工作方式,通用性强,使用灵活。

8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。

可与外设并行进行数据交换。

A口和B口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换。

8255能与许多外部设备连接,例如:

键盘、显示器、打印机等。

(a)工作方式控制字(b)C口按位置位/复位控制字

四.实验内容及步骤

1.8255的一般输入输、出方式

本系统中的8255芯片8255的数据线、地址线、读写控制线等分别与系统总线相连,其A、B、C三个端口以排针形式引出,供8255实验使用,其线路如图1所示。

图18255接口实验中端口地址如表1所示

表1

信号线

寄存器

编址

IOY3

A口

60H

B口

61H

C口

62H

控制寄存器

63H

接口实验单元中的开关和发光二极管电路

按图所示实验线路,8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。

用一组开关信号接入端口B,端口A输出线接至一组发光二极管上,通过对8255编程来实现输入输出功能。

图28255输入输出方式实验接线图

注:

圆圈处是要求接的连线。

(1)按图2接线。

用扁平线(8头)分别插在8255的A口和发光二极管的插针上。

用扁平线分别插在8255的B口和拨动开关的插针上。

(2)输入源程序,汇编、连接后装入系统。

● 

参考程序1

MOVAL,82H;

设8255方式字10000010A位输出,B口位输入。

OUT63H,AL

INAL,61H

OUT60H,AL

JMPA1

(3)执行程序后,拨动开关组K0-K7,观察发光二极管LED0-LED7变化,它应是与开关组K0-K7的值是一一对应的变化。

2.8255的选通输入、输出方式

按图3所示实验线路,8255端口A工作在方式0并作为输出口,端口B工作在方式1并作为输入口。

从端口C的PC2成为选通信号输入,端STBb,PC0成为中断请求信号输出端INTRb。

当B口数据就绪后,通过发口STBb信号来请求CPU读取端口B数据并送A口输出显示。

图38255选通方式实验接线图

(KK1-初态为“1”)

(1) 

按图3接线。

8255的PC0插针接8259的IRQ7插针上,8255的PC1插针接KK1-插针上。

(2) 

输入源程序,汇编、连接后装入系统。

参考程序2

CLI

MOVAL,0A6H

MOVAL,05H

PUSHDS

MOVAX,0000H

MOVAX,OFFSETIRQ7

ADDAX,2000H

MOVSI,003CH

MOV[SI],AX

MOVSI,003EH

POPDS

INAL,21H;

读IMR

ANDAL,7FH;

开IRQ7中断

OUT21H,AL

STI

HLT;

等待中断请求信号

JMPA1

IRQ7:

INAL,61H;

读开关信息

OUT60H,AL;

输出开关信息

MOVAL,20H

OUT20H,AL

IRET

ENDSTART

(3) 

执行程序后,拨动开关组K0-K7(即设定一输入值),按一下拨动开关KK1,观察发光二极管LED0-LED7变化,它应是与开关组K0-K7D的设定值一一对应。

3.运用8255设计的键盘及显示接口

图中用并行接口8255A作为微机与键盘间的接口,采用逐行扫描法识别键。

将键盘中的列与PA0-PA3相连,A口为输出;

将行与C口的PC0-PC1相连,C口为输入口;

PB0-PB7与七段代码显示器连接B口为输出。

程序执行过程如下:

识别是否有键按下,方法是使PA0-PA3输出全0,读C口(行值)中只要有一位为0,就说明有键按下,在检测到有键按下后,延迟一段时间,根据找到的键号,转去执行显示七段代码显示器的程序,这时七段代码显示器就显示与该键相同的数值。

实验步骤

图48255接口的应用键盘及显示接线图

(1)按图4接线。

(3)执行程序后,按一下键盘,7段代码就会显示相应的数字。

参考程序3

STACKSEGMENTSTACK

DATASEGMENT

TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DATAENDS

CODESEGMENT

MOVSI,3000H

MOVAL,00H

MOV[SI],AL;

清空存放数据的缓冲区

MOV[SI+1],AL

MOV[SI+2],AL

MOV[SI+3],AL

MOVDI,3003H

MOVAL,81H;

8255方式字定义选择0方式,A口为输出;

B口为输出;

C口为输入

OUT63H,AL

BEGIN:

CALLDIS;

显示七段代码管数据的子程序

CALLCLEAR;

七段代码管清0子程序

CALLCCSCAN;

检测是否有键按下子程序

JNZINK1;

JMPBEGIN

INK1:

CALLDIS

CALLDALLY;

子程序为延时,消抖动

CALLDALLY

CALLCLEAR

CALLCCSCAN

JNZINK2

JMPBEGIN

INK2:

MOVCH,0FEH

MOVCL,00H

COLUM:

MOVAL,CH

OUT60H,AL

INAL,62H

TESTAL,01H

JNZLONE

MOVAL,00H

JMPKCODE

LONE:

TESTAL,02H

JNZNEXT

MOVAL,04H

KCODE:

ADDAL,CL

CALLPUTBUF

PUSHAX

KON:

JNZKON

POPAX

NEXT:

INCCL

TESTAL,08H

JZKERR

ROLAL,1

MOVCH,AL

JMPCOLUM

KERR:

CCSCAN:

NOTAL

ANDAL,03H

RET

CLEAR:

OUT61H,AL

DIS:

MOVSI,3000H

MOVDL,0F7H

MOVAL,DL

AGAIN:

MOVAL,[SI]

MOVBX,OFFSETTABLE;

取七段代码首址

ANDAX,00FFH

ADDBX,AX

MOVAL,[BX]

OUT61H,AL

CA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2