微机原理实验指导书.docx

上传人:b****1 文档编号:1944862 上传时间:2023-05-02 格式:DOCX 页数:16 大小:80.83KB
下载 相关 举报
微机原理实验指导书.docx_第1页
第1页 / 共16页
微机原理实验指导书.docx_第2页
第2页 / 共16页
微机原理实验指导书.docx_第3页
第3页 / 共16页
微机原理实验指导书.docx_第4页
第4页 / 共16页
微机原理实验指导书.docx_第5页
第5页 / 共16页
微机原理实验指导书.docx_第6页
第6页 / 共16页
微机原理实验指导书.docx_第7页
第7页 / 共16页
微机原理实验指导书.docx_第8页
第8页 / 共16页
微机原理实验指导书.docx_第9页
第9页 / 共16页
微机原理实验指导书.docx_第10页
第10页 / 共16页
微机原理实验指导书.docx_第11页
第11页 / 共16页
微机原理实验指导书.docx_第12页
第12页 / 共16页
微机原理实验指导书.docx_第13页
第13页 / 共16页
微机原理实验指导书.docx_第14页
第14页 / 共16页
微机原理实验指导书.docx_第15页
第15页 / 共16页
微机原理实验指导书.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理实验指导书.docx

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

微机原理实验指导书.docx

微机原理实验指导书

实验一数据传送

实验目的:

1.熟悉8086指令系统的数据传送指令及8086的寻址方式。

2.利用TurboDebugger调试工具来调试汇编语言程序。

实验任务:

1.通过下述程序段的输入和执行来熟悉TurboDebugger的使用,并通过显示器屏幕观察程序的执行情况。

练习程序段如下:

MOVBL,08H

MOVCL,BL

MOVAX,03FFH

MOVBX,AX

MOVDS:

[0020H],BX

2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。

压栈程序段如下:

MOVAX,0102H

MOVBX,0304H

MOVCX,0506H

MOVDX,0708H

PUSHAX

PUSHBX

PUSHCX

PUSHDX

出栈程序段请自行编写(用不同的出栈顺序)

3.

指出下列指令的错误并加以改正,上机验证之

⑷MOVBYTEPTR[BX],2000H

⑸MOVCS,AX

⑹MOVDS,2000H

4.设置各寄存器及存储单元的内容如下:

(BX)=0010H,(SI)=0001H(10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H(10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH

5.

说明下列各条指令执行完后AX寄存器中的内容,并上机验证。

6.将DS:

1000H字节存储单元中的内容送到DS:

2020H单元中存放。

试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。

7.设AX寄存器中的内容为1111H,BX寄存器中的内容为2222H,DS:

0010H单元中的内容为3333H。

将AX寄存器中的内容与BX寄存器中的内容交换,然后再将BX寄存器中的内容与DS:

0010H单元中的内容进行交换。

试编写程序段,并上机验证结果。

8.设(DS)=1000H,(ES)=2000H,有关存储器的内容如图1.5所示。

要求将DS段的内容传送到AX寄存器,ES段的内容传送到BX寄存器,试编写程序段。

D5000H

...

0FFH

0EEH

...

ES:

2000H

0DDH

0CCH

...

图1第7题图

实验报告要求:

1.写明本次实验内容和实验步骤。

2.整理出运行正确的各题源程序段和运行结果。

3.写出第3题中改正后的正确指令。

4.小结TurboDebugger的使用方法。

实验二算术逻辑运算及移位操作

实验目的:

1.熟悉算术逻辑运算指令和移位指令的功能。

2.了解标志寄存器各标志位的意义和指令执行对它的影响。

实验预习要求:

1.复习8086指令系统中的算术逻辑类指令和移位指令。

2.按照题目要求在实验前编写好实验中的程序段。

实验任务:

1.实验程序段及结果表格如表2:

MOVBL,25H

MOVBYTEPTR[10H],4

MOVAL,[10H]

MULBL

程序段4:

0

0

0

0

0

0

MOVWORDPTR[10H],80

d

MOVBL,4

MOVAX,[10H]

DIVBL

程序段5:

0

0

0

0

0

0

MOVAX,0

DECAX

ADDAX,3FFFH

ADDAX,AX

NOTAX

SUBAX,3

1

1

ORAX,0FBFDH

1

1

ANDAX,0AFCFH

SHLAX,1

RCLAX,1

2.用BX寄存器作为地址指针,从BX所指的内存单元(0010H)开始连续存入三个无符号数(10H、04H、30H),接着计算内存单元中的这三个数之和,和放在0013H单元中,再求出这三个数之积,积放0014单元中。

写出完成此功能的程序段并上机验证结果。

3.写出完成下述功能的程序段。

上机验证你写出的程序段,程序运行的最后结果(AX)=?

⑴传送15H到AL寄存器;

(2)再将AL的内容乘以2;

⑶接着传送15H到BL寄存器;

⑷最后把AL的内容乘以BL的内容。

4.写出完成下述功能的程序段。

上机验证你写出的程序段,程序运行后的商=?

(1)传送数据2058H至UDS:

1000H单元中,数据12H至UDS:

1002H单元中;

(2)把DS:

1000H单元中的数据传送到AX寄存器;

(3)把AX寄存器的内容算术右移二位;

(4)再把AX寄存器的内容除以DS:

1002H字节单元中的数;

(5)最后把商存入字节单元DS:

1003H中。

5.下面的程序段用来活除数据段中从偏移地址0010H开始的12个字存储单元的内容(即将零送到这些存储单元中去)。

(1)将第4条比较指令语句填写完整(划线处)。

MOVSI,0010H

NEXT:

MOVWORDPTR[SI],0

ADDSI,2

CMPSI,

JNENEXT

HLT

⑵假定要按高地址到低地址的顺序进行活除操作(高地址从0020H开始),

则上述程序段应如何修改?

上机验证以上两个程序段并检查存储单元的内容是否按要求进行了改变。

6.输入并运行表3中的程序段,把结果填入表右边的空格中,并分析结果,说明本程序段的功能是什么。

程序段

字单元(1A00H)=

字单元(1A02H)=

MOV[1A00H],0AA55H

MOV[1A02H],2AD5H

SHLWORDPTR[1A02H],1

CMP[1A00H],8000H

CMC

RCLWORDPTR[1A02H]/

RCLWORDPTR[1A00H]/

实验报告要求

1.整理出完整的实验程序段和运行结果。

2.回答题目中的问题。

3.简要说明ADD、SUB、AND、OR指令对标志位的影响。

4.简要说明一般移位指令与循环移位指令之间的主要区别。

实验三串操作

实验目的:

1.熟悉申操作指令的功能。

2.了解申操作指令的使用方法。

实验预习要求;

1.复习8086指令系统中的申操作类指令。

2.按照题目要求在实验前编写好实验中的程序段。

实验任务:

1.输入以下程序段并运行之,回答后面的问题。

CLD

MOVDI,1000H

MOVAX,55AAH

MOVCX,10H

REPSTOSW

上述程序段执行后:

(1)从DS:

1000H开始的16个字单元的内容是什么?

⑵(DI)=?

(CX)=?

并解释其原因。

2.在上题的基础上,再输入以下程序段并运行之,回答后面的问题

MOVSI,1000H

MOVDI,2000H

MOVCX,20H

REPMOVSB

程序段执行后:

⑴从DS:

2000H开始的16个字单元的内容是什么?

(2)(SI)=?

(DI)=?

(CX)=?

并分析之。

3.在以上两题的基础上,再输入以下三个程序段并依次运行之。

程序段1:

MOVSI,1000H

MOVDI,2000H

MOVCX,10H

REPZCMPSW

程序段1执行后:

⑴ZF=?

根据ZF的状态,你认为两个申是否比较完了?

(2)(SI)=?

(DI)=?

(CX)

程序段2:

MOV[2008H],4455H

MOVSI,1000H

MOVDI,2000H

MOVCX,10H

REPZCMPSW

程序段2执行后:

⑴ZF=?

根据ZF的状态,你认为两个申是否比较完了?

(2)(SI)=?

(DI)=?

(CX)=?

并分析之。

程序段3:

MOVAX,4455H

MOVDI,2000H

MOVCX,10H

REPNZSCASW

程序段3执行后:

⑴ZF=?

根据ZF的状态,你认为在申中是否找到了数据4455H?

(2)(SI)=?

(DI)=?

(CX)=?

并分析之。

4.从DS:

1000H开始存放有一个字符申”Thisisastring”,要求把这个字符申从后往前传送到DS:

2000H开始的内存区域中(即传送结束后,从DS:

2000H开始的内存单元的内容为”gnirtsasisihT”),试编写程序段并上机验证之。

实验报告要求:

1.整理出完整的实验程序段和运行结果,对结果进行分析。

2.简要说明执行申操作指令之前应初始化哪些寄存器和标志位。

3.总结串操作指令的用途及使用方法。

实验四字符及字符串的输入和输出

实验目的:

1.熟悉如何进行字符及字符申的输入输出。

2.掌握简单的DOS系统功能调用。

实验预习要求:

1.复习系统功能调用的1、2、9、10号功能。

2.按照题目要求预先编写好实验中的程序段。

实验任务:

1.输入以下程序段并用F8键单步运行,执行INT21H指令时,在键盘上按“5”键。

MOVAH,1

INT21H

(1)运行结束后,(AL)=?

它是哪一个键的ASCII码?

(2)重复运行以上程序段,并分别用“A”、“B”、“C”、“D”键代替“5”键,观察运行结果有何变化?

2.在DS:

1000H开始的内存区域设置如下键盘缓冲区:

DS:

1000H5,0,0,0,0,0,0

然后输入以下程序段并用F8键单步运行,执行INT21H指令时,在键盘上键入“5”、“4”、“3”、“2”、“1”、〈回车〉这六个键。

LEADX,[1000H]

MOVAH,0AH

INT21H

程序段运行完后,检查DS:

1000H开始的内存区域:

⑴DS:

1001H单元的内容是什么?

它表示了什么含义?

(2)从DS:

1002H开始的内存区域中的内容是什么?

其中是否有字符“1”的ASCII码?

为什么?

3.输入以下程序段并运行之。

MOVDL,'A'

MOVAH,2

INT21H

(1)观察屏幕上的输出,是否显示了“A”字符?

(2)分别用“#”、“X”、“Y”、“$”、“?

”代替程序段中的“A”字符,观察屏幕上的输出有何变化。

(3)分别用0DH、0AH代替程序段中的“A”字符,观察屏幕上的输出有何变化。

(4)用07H代替程序段中的“A”字符,观察屏幕上有无输出?

计算机内的扬声器是否发出“哗”的声音?

4.要在屏幕上显示一个字符申“Hello,world”,写出该字符申变量的定义语句和显示这个字符申的程序段。

上机验证之。

5.按6行X16列的格式顺序显示ASCII码为20H到7FH之间的所有字

符,即每16个字符为一行,共6行。

每行中相邻的两个字符之间用空格字符分隔开。

试编写程序段并上机运行验证。

提示:

程序段包括两层循环,内循环次数为16,每次内循环显示一个字符和一个空格字符;外循环次数为6,每个

外循环显示一行字符并显示一个回车符(0DH)和一个换行符(0AH)。

实验报告要求:

1.整理出运行完整的实验程序和运行结果。

2.回答题目中的问题。

3.说明系统功能调用的10号功能对键盘缓冲区格式上有何要求。

4.1、2、9、10号功能的输入输出参数有哪些?

分别放在什么寄存器中?

5.总结一下,如何实现字符及字符串的输入输出。

实验五分支及循环程序设计

实验目的

1.学习提示信息的显示及键盘输入字符的方法。

2.掌握分支程序和循环程序的设计方法。

实验预习要求:

1.复习比较指令、转移指令、循环指令的用法。

2.根据编程提示,编出汇编语言■源程序。

3.有兴■趣的同学请编写出实验习题中的程序。

分支程序和循环程序简介:

1.分支程序是根据不同条件执行不同处理过程的程序。

分支程序的结构有两种:

一种是二分支,一种是多分支。

它们的共同特点是在满足某一条件时,将执行多个分支中的某一分支。

2.循环程序

实验内容:

在屏幕上显示提示信息“Pleaseinput10numbers:

”,提示用户输

入10个数(数的范围在0〜99之间),然后从键盘上读入这10个数。

接着对这10个数从小到大进行排序,并统计0〜59、60〜79、80〜99的数各有多少。

最后在屏幕上显示排序后的数(每个数之间用逗号分隔)并显示统计的结果。

显示格式如下:

Sortednumbers:

xx,xx,xx,xx,xx,xx,xx,xx,xx,xx

0-59:

xx

60-79:

xx

80-99:

xx

实验习题:

1.从键盘输入任意一个字符申,统计其中不同字符出现的次数(不分大小写),并把结果显小在屏帚上。

2.从键盘分别输入两个字符申,若第二个字符申包含在第一个字符申中则显示

'MATCH',否则显示’NOMATCH'。

实验报告要求:

1.

整理出完整的实验程序

2.总结一下编制分支程序和循环程序的要点。

3.(选做)在实验习题1和实验习题2中任选一个,编写程序并上机验证。

实验六交通灯实验

实验要求

编写程序,以8255作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟十字路口交通灯管理。

实验目的

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

2.进一步学习编制数据输出程序的设计方法。

3.学习模拟交通灯控制的方法。

4.学习双色灯的使用。

实验电路及连线

VCC

 

PC0—PC3连DR1—DR4,PC4—PC7连DG1—DG4。

CS55连218H—21FH孔。

1.因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。

假设一个十字路口为东西南北走向。

初始状态0为东西、南北均为红灯。

然后转状态1南北绿灯通车,东西红灯。

过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。

再转状态3,东西绿灯通车,南北红灯。

过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。

最后循环至状态1。

2.双色LED^由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。

当红色正端加高电平■,绿色正端加低电平■时,红灯亮;当红色正端加低电平■,绿色正端加高电平时,绿灯亮;两端都加高电平■时,黄灯亮.

实验程序框图

六.思考题

编写程序,使所有黄灯闪烁(每秒闪烁一次,闪三次)。

实验七、D/A转换实验

1.实验要求

用键盘输入来控制D/A输出的波形,程序应能输出锯齿波、三角波、方波和正弦波。

2.实验目的

1.掌握DAC0832芯片的4性能、使用方法及对应的硬件电路。

2.了解D/A转换的基本原理。

3.

实验电路及连线

+12

DAC0830

AOUT

R11100

4.实验说明

D/A转换是把数字量转换成模拟量的变换,从本书D/A电路输出的是模拟电压信号要实现实验要求,比较简单的方法是产生四个波形的表格,然后通过查表来实现波形显

示.

产生方波只需控制输出高低电平的时间,产生锯齿波和三角波的表格需由数字量的增减来控制,同时要注意三角波要分两段来产生^

要产生正弦波,可以造一张正弦数字量表.即查函数表得到的值转换成十六进制数填表.D/A转换取值范围为一个周期,采样点越多,精度越高些.本例采用的采样点为64

点/周期.

五.实验程序框区

 

六思考题

编写一个程序根据输入产生响应频率锯齿波

实验八汇编语言综合程序设计

【实验目的】

1.汇编语言综合程序设计;

2.学会编写实用性的汇编程序;

3.熟练使用和掌握DOS、BIOS功能调用。

【实验内容】

1.权限管理程序。

通过键盘输入六位数字,要求屏幕上显示的全都是“*号,只有

知道密码的人才能看到刚刚输入的六个数字。

(提示:

该程序实现的功能类似银行里的

存折密码管理系统)

题目要求:

(1)当从键盘上输入的不是数字时,提示出错

(2)有权限的人才能让刚刚输入的数字显示出来(即银行里一般的职员看不到储

户输入的密码,只有高级职员才能看到储户的密码)

(3)储户以后输入密码时,若与第一次的密码相同应提示aPasswordisRight,否贝U,提示"PasswordisWrong”

2.编写程序,利用循环语句计算1+2+3+4+5.。

+N,并把结果显示出来,其中N由键盘输入。

【实验要求】

1.写出程序清单,并进行详尽的注释

2.程序编写过程遇到那些困难?

你是如何解决的?

思考:

你认为这个程序还有哪些地方可以更完善的?

请给出意见,并实现!

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

当前位置:首页 > 经管营销 > 经济市场

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

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