微机实验指导Word文件下载.docx

上传人:b****5 文档编号:18139157 上传时间:2022-12-13 格式:DOCX 页数:24 大小:210.31KB
下载 相关 举报
微机实验指导Word文件下载.docx_第1页
第1页 / 共24页
微机实验指导Word文件下载.docx_第2页
第2页 / 共24页
微机实验指导Word文件下载.docx_第3页
第3页 / 共24页
微机实验指导Word文件下载.docx_第4页
第4页 / 共24页
微机实验指导Word文件下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

微机实验指导Word文件下载.docx

《微机实验指导Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机实验指导Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。

微机实验指导Word文件下载.docx

把低位字送给4002H单元

HLT

CODESENDS;

程序结束

ENDSTART

此程序运行的结果是:

(用DDS:

4000)

13C9:

40005B050B0000……

拼字程序清单:

MOVAX,DATAS

MOVDS,AX

MOVBX,4000H;

把地址单元4000H给BX寄存器

MOV[BX],0F6H;

把4000H单元所要拼的字置为F6H

MOV[BX+1],28H;

把4001H单元所要拼的字置为28H

MOVAH,[BX];

把4000H单元的内容给AH

MOVAL,[BX+1];

把4001H单元的内容给AL

MOVCL,4;

SHLAL,CL;

AL的内容左移4位

ANDAH,0FH;

屏蔽掉AH中的高四位

ORAL,AH;

进行拼字

INCBX;

MOV[BX],AL;

将拼好的字保存在4002H单元

4000F628680000……

答:

①MOV指令的目的操作数不允许用立即数方式;

②MOV指令的目的操作数不允许用CS寄存器;

③除源操作数为立即数的情况外,两个操作数中必须有一个是寄存器;

④不允许MOV指令在两个存储单元之间直接传递数据;

⑤不允许在两个段寄存器之间直接传递信息;

⑥MOV指令使用操作数为段寄存器、或地址单元不能为非法数;

⑦MOV指令不影响标志寄存器FLAG中的标志位。

1.单字和双字在存储器中是怎样存放的?

在16位计算机中,单字是由2个字节构成的。

当一个整数字保存在存储器中时,这两个字节是按相反的顺序存储的。

首先存储的是低有效字节,再把高有效字节存储在下一个地址。

也就是说低位字节存储在低地址,高位字节存储在高地址。

例如:

3456H在存储器地址(0000、0001)中是这样存放的:

地址单元:

000034H(数值)

000156H

双字是32位宽、4个字节,并且是由两个连续存储的相邻的字组成的,这是非常重要的数据格式。

双字的存储与单字存储的方法相似,即低位字存放在较低的存储器地址单元,高位字存放在下一个较高的存储器地址单元。

例如11223344H存放形式:

000044H(数值)

000133H

001022H

001111H

实验二 数据区移动与分支程序

1.掌握RAM中的数据相关操作的方法与指令。

2.掌握分支结构编程方法及条件转移指令的用法。

二、实验条件与内容

1、把4100H源RAM区首址内的16字节数据传送到4200H目标RAM区。

2、假设有一组数据为5,-4,0,3,100,-51。

请编程判断:

每个数大于0,等于0,还是小于0,并输出其判断结果。

即:

1当x>

y=0当x=0

-1当x<

数据区移动设计思想

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

源数据块和目的数据块在存储器中可能有三种情况,如下图:

对于两个数据块分离的情况,如图4-1所示。

数据的传送从数据块的首址开始,或者从数据块的末址开始均可。

但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。

可以得出以下结论:

当源数据首址>目的块首址时,从数据块首址开始传送数据。

当源数据块首址<目的块首址时,从数据块末地址开始传送数据。

四、程序框图

见该实验程序流程框图。

五、实验过程及步骤

实验1

在汇编语言环境下输入该实验上机程序,并对程序进行编译。

对程序分别进行调试:

(1)在程序未运行前,检查4100H~4110H、4200H~4210H中的内容情况。

(2)用单步或用断点方式运行程序,检查检查4100-410FH中内容是否和4200-420FH中内容完全一致。

实验2

实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。

编程提示:

1.首先将原始数据装入起始地址为XX的字节存储单元中。

2.将判断结果以字符串的形式存放在数据区中,以便在显示输出时调用。

3.其中判断部分可采用CMP指令,得到一个分支结构,分别输出“y=0”,“y=1”,“y=-1”。

4.程序中存在一个循环结构,循环6次,调用6次分支结构后结束。

1.在分支程序设计中,怎样才能形成条件、构成分支?

2.条件转移指令有哪三种类型?

根据三种类型将下面指令进行分类。

数据区移动实验的上机程序清单:

MOVAX,DATAS

MOVDS,AX

MOVCX,010H;

置搬移数据循环次数

MOVSI,4100H;

置源数据块首址

MOVDI,4200H;

置目的数据块首址

MOVBX,SI;

将源数据块首址给BX

NUM:

MOV[BX],0FFH;

将16个数据存放在

INCBX源数据块区

LOOPNUM

MOVCX,010H;

置搬移数据循环次数

CMPSI,DI;

SI与DI相比较

JAL2;

SI>

DI跳转到L2处

ADDSI,CX;

SI与CX相加

ADDDI,CX;

DI与CX相加

L1:

DECSI;

置源数据块末地址

DECDI;

DI减1,置目的数据块末地址

MOVAL,[SI];

把源数据块末地址的数据搬移到目的数据块区域

MOV[DI],AL

LOOPL1;

循环16次结束

JMPHEND;

跳转到结束

L2:

把源数据块存储单元的数据传送到目的数据块

MOV[DI],AL

INCSI;

源数据块地址增1

INCDI;

目的数据块地址增1

LOOPL2;

数据搬移16次后结束

HEND:

HLT

ENDSTART

分支程序清单:

DATASSEGMENT

XDB25,-4,0,3,100,-51,17,62;

建立数据表

YDB;

为存储结果建立缓冲区

DATASENDS

DATAS

MOVAX,DATAS

MOVDS,AX;

置数据段存放地址

XORAX,AX;

对AX清零

MOVCX,6;

设定循环控制数

LEASI,X;

置数据表偏移量首址

LEADI,Y;

置存储数据偏移量首址

BJ:

MOVAL,[SI];

将第一个数给AL

CMPAL,0;

AL内容与0进行比较

JGEDY;

比较结果>

=0则转移到DY处

XY0:

MOVBL,-1;

小于0将-1给BL

MOV[DI],BL;

将-1存储到地址单元

JMPXH;

跳转到XH处

DY:

JEXD;

若等于0转移到XD处

MOVBL,1

将1给BL且存储到地址单元

JMPXH;

XD:

MOVBL,0;

给BL赋值为0

MOV[DI],BL;

将0存储到地址单元

XH:

INCSI;

数据表偏移地址增1

INCDI;

存放结果数据偏移地址增1

LOOPBJ;

判断CX是否为0,是则结束,否则进行循环

CODESENDS;

ENDSTART

实验三循环程序设计

1.掌握循环程序设计的方法(两重性循环结构)

2.掌握正确分配与使用寄存器。

二、实验内容与要求

以GRADE为首地址的10个字的数组中保存有学生成绩。

建立一个10个字的RNAK数组,并根据GRADE中的学生成绩将学生名次填入RANK数组中(提示:

一个学生的名次等于成绩高于等于该学生的人数加1)。

寄存器分配情况说明如下:

AX存放当前被测学生的成绩

BX存放当前被测学生的相对地址指针

CX内循环计数值

DX存放当前被测学生的名次计数值

SI内循环测试时的地址指针

DI外循环计数值

见图6-1所示。

四、实验报告及要求

(一)预习准备部分

1.预习本次实验指导书中一、二、三部分内容。

2.按照实验内容要求写出程序清单。

(二)实验过程部分

1.写出上机调试后正确的程序,说明程序的功能、结构。

2.调试说明,包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

3.写出源程序执行的结果。

在循环程序设计中,循环初始化时应注意哪些问题?

按要求编程,计算学生排名,并输出排名结果:

GRADEDB95,84,72,58,76,90,100,

68,80,88

建立学生成绩表

RANKDB10DUP(?

建立学生成绩名次的缓冲区

KGDB‘’,‘$’

显示两个空格

ASSUMECS:

MOVAX,DATAS

MOVDS,AX;

分配数据段地址

XORAX,AX;

MOVDI,0;

对DI置0

置学生成绩表首址

WXH:

MOVAL,[BX]

将第一个学生成绩给AX

将学生名次先置为1

设置循内环计数值

MOVSI,OFFSETGRADE;

取比较学生成绩的第一个数

NXH:

CMPAL,[SI];

两个学生成绩相比较

JAENEXT;

若高于等于则跳转到NEXT处

否则学生名次增1

NEXT:

INCSI;

取下一个相比较的学生成绩

判断CX是否为0

将学生名次存入地址单元

INCBX;

取下一个学生的成绩

INCDI;

外循环控制次数增1

外循环次数是否到10

JBWXH;

不到10进行循环,到10后结束

设置显示名次缓冲区首址

MOVCX,10;

设置显示控制循环次数为10

XS:

将显示的名次给AL

CMPAL,0AH;

名次与0AH(10)比较

JWEDY;

高于等于转移到DY

ADDAL,30H;

转换成ASIIC码进行输出显示

显示名次

JMPKGF;

跳转到显示空格处

大于等于A的进行转换,并显示

MOVDL,AL

MOVAH,02

INT21H

KGF:

LEADX,KG;

显示空格字符串

INT21H

LOOPXS

HLT

实验四244/273基本接口I/O实验

1.学习微机接口控制系统中扩展简单I/O口的方法。

2.学习数据输入/输出程序的编制方法。

二、实验条件

1.PC计算机及操作系统WindowsXP/Win7。

2.微机实验系统(简称实验箱)以及连接线若干。

三、实验电路

四、实验内容

(一)电路接线

1.将74LS244的8个数据输入端分别接到8个电平开关K0~K7上,8个数据输出端分别接到数据总线D0~D7。

2.将74LS244的片选接线端CS244接到2A0-2A7H地址端。

3.将74LS273的8个D输入端分别接到数据总线D0~D7,8个Q输出端接到LED显示电路L0~L7。

4.将74LS2273的片选接线端CS273接到2A8-2AFH地址端。

(二)实验内容一

编程将74LS244芯片作为输入读取开关状态,并把74LS273作为输出在LED上显示开关状态。

(三)实验内容二

编程从键盘上输入一个字母或数字(不要用小键盘输入),将其ASCII码通过74LS273输出,并在8个LED上显示。

五、实验要求

在实验过程中,记录实验时拨动开关的状态,并观察LED的显示状态。

1.74LS244、74LS273是什么芯片?

2.

信号线分别起什么作用?

实验五8255A并口实验——方波、输入/输出

1.了解8255器件的原理,掌握其各口实现输入/输出的方法。

2.通过编程实现A、B、C口的方波输出,并编程实现A口输入、B口输出的方法。

二、实验内容与过程

1、8255A的输入/输出实验。

要求A口作为输入,B口作为输出。

(1)将开关K1~K8端子分别接到8255A的A口的8个端子,将发光二极管L1~L8分别接到B口的8个端子。

并将选片信号线连接起来。

(2)输入程序并调试运行。

(3)分别拨动钮子开关K1~K8,观察LED的L1~L8的亮与灭。

该实验上机程序清单如下,请把空格处的程序进行完善。

CODESEGMENT

CODE

PAEQU;

A口控制字

PBEQU;

B口控制字

PCTLEQU;

8255控制口的控制字

H20:

对8255各口初始化

P20:

把A口作为输入端

取A口状态

把B口作为输出端

把A口的状态由B口进行输出

JMPP20;

进行循环

CODEENDS

ENDH20

2、8255A输出方波实验。

完善程序,输入源文件,进行运行,在实验箱七段数码管显示“Γ”状态下,用示波器观察A、B、C口的输出波形。

8255的A口控制字

8255的B口控制字

PCEQU;

8255的C口控制字

8255初始化

P21:

打开A口

输出电平

打开B口

打开C口

MOV CX,0800H;

赋延时循环数

DELAY:

NOP

LOOPDELAY

AL值取反

JMPP21;

跳转到P11处循环

ENDH1

用示波器观察A、B、C口的输出的波形,并在下面坐标上画出其波型。

三、实验总结

1、8255A与CPU相连的引脚除数据线D7~D0外,还有控制线引脚

是什么信号?

有什么作用?

另外A1、A0信号起什么作用?

2、8255A方式控制字是由数据信号D7~D0来决定,其中哪些位用来选择A组的工作方式及端口A和端口C高4位的输入/输出性质?

哪些位位用来选择B组的工作方式及端口B和端口C低4位的输入/输出性质?

3、8255A方式0的主要特征是什么?

实验六8255并口实验——控制交通灯

掌握8255并口传输数据的方法,以控制发光二极管的亮与灭,模拟实现十字路口交通灯的控制。

二、实验内容

用8255并口的PA、PB作为输出口,控制12个发光二极管(相当于东、西、南、北路口各3个红黄绿灯)的亮与灭,模拟交通灯的管理。

开始

读取8255控制字88H,使各端口

均为输出口,且均工作于方式0

使4个路口的红灯全亮

延时一段时间

点亮1、3路口绿灯

延时

熄灭1、3路口绿灯

1、3路口黄灯亮且闪烁8次

四个红灯亮

点亮2、4路口绿灯

熄灭2、4路口绿灯

2、4路口黄灯亮且闪烁8次

4个红灯全亮

编程提示:

(1)将8255的PA0、PA3、PA6、PB1对应发光二极管的红灯,PA1、PA4、PA7、PB2对应发光二极管的黄灯,PA2、PA7、PB0、PB3对应发光二极管的绿灯。

(2)设十字路口1、3为南北方向,2、4为东西方向,初始状态为4个路口的红灯全亮。

之后,1、3路口绿灯亮,2、4路口红灯亮,即南北通车,东西禁行。

延时一段后,1、3路口绿灯熄灭,而1、3路口黄灯开始闪烁,闪烁8次后,1、3路口红灯亮,而同时2、4路口绿灯亮,即东西通车。

延时一段时间后,2、4路口绿灯熄灭,而黄灯开始闪烁,闪烁8次后,再切换到1、3路口方向通车,重复上述过程。

(3)设定8255的三个端口工作方式均为0,并处于输出状态。

(4)各发光二极管共阳极,使其点亮应使8255各相应的端口位清0。

四、实验电路

五、实验步骤

1.按实验电路连线,即8255各端口接线如下:

PA0——L12PA1——L11PA2——L10PA3——L9PA4——L8

PA5——L7PA6——L6PA7——L5PB0——L4PB1——L3

PB2——L2PB3——L1

把8255的选片信号线连接起来。

2.输入程序并运行。

六、实验报告及要求

1.预习本次实验指导书的一~五部分内容。

2.按照实验内容要求编写程序。

1.对上机调试后的正确程序,说明语句功能、程序结构。

3.说明8255并口模拟控制交通灯的工作过程。

1.系统分配给8255A的I/O地址是什么?

其三种工作方式是什么?

2.8255A在方式0下的端口A、B、C的工作状态是什么?

实验七D/A转换输出波形实验

1.了解DAC0832器件的原理,掌握其各口实现输入/输出的方法。

3.示波器。

三、实验内容与过程

1、实验内容1编制程序,利用DAC0832芯片输出方波。

(1)将选片信号线按要求连接起来。

(2)输入程序并运行。

DAPORTEQU;

DAC0832控制字

H41:

P41:

YS:

LOOPYS

JMPP41

ENDH41

实验结果,在示波器上输出的波形:

2、实验内容2编制程序,利用DAC0832芯片输出锯齿波。

DAC0832控制字

H42:

P42:

JMPP42

ENDH42

若生成负锯齿波信号,只要把语句改成即可。

3、实验内容3编制程序,利用DAC0832芯片输出三角波。

H43:

MOVDX,DAPORT

P43:

OUTDX,AL

JEQ43

JMPP7

Q43:

JEP43

JMPQ43

ENDH43

4、实验内容4编制程序,利用DAC0832芯片输出梯形波。

H44:

P44:

LOOPP44

MOVCX

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

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1