微机原理实验教程.docx

上传人:b****3 文档编号:3846496 上传时间:2022-11-25 格式:DOCX 页数:67 大小:1.20MB
下载 相关 举报
微机原理实验教程.docx_第1页
第1页 / 共67页
微机原理实验教程.docx_第2页
第2页 / 共67页
微机原理实验教程.docx_第3页
第3页 / 共67页
微机原理实验教程.docx_第4页
第4页 / 共67页
微机原理实验教程.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

微机原理实验教程.docx

《微机原理实验教程.docx》由会员分享,可在线阅读,更多相关《微机原理实验教程.docx(67页珍藏版)》请在冰豆网上搜索。

微机原理实验教程.docx

微机原理实验教程

 

《微机原理》实验教程

计算机系统教研室《微机原理》课程组

南通大学计算机科学与技术学院

2010年3月

前言

本实验教程是电子工业出版社已出版的《微机原理与接口技术(第2版)》教材的配套教材,主要面向高等院校“微机原理”、“汇编语言程序设计”、“接口与通信”的课程教学。

这三门课程都是实践性很强的课程,只有通过实践才有可能掌握程序设计技术以及微机接口的原理与应用并达到较高的水平。

本实验教程是根据我院三门课程的多年教学经验,结合我院学生的实际情况,在突出应用编程和实际应用的基础上编写的。

我院微机原理实验室采用武汉恒科电子教学仪器有限公司生产的“超想微机原理与接口实验系统(超想—3000TC)”。

该系统采用超大规模定制芯片的通用仿真器,USB通讯模式,具有硬件自动检测功能、万用硬件扩展功能。

随实验仪提供的系统仿真开发软件界面功能丰富,使用者可以在此环境下完成汇编程序的编辑、汇编、链接、调试工作。

本实验教程可使学生对实验仪都有所了解,更好地完成教学大纲规定的实验。

此外,我院“微机原理”、“汇编语言程序设计”、“接口与通信”课程每学期开设班级为16个班左右,且每个班级都配有相应的课程设计,加上教学内容繁多以及课上学时有限,不可能在课堂上详细介绍实验仪的原理及使用,学生可通过实验教程来弥补。

本实验教程涵盖微机原理实验仪的原理介绍及使用说明;每个实验既注重基本原理的应用,又注重学生灵活应用所学知识和设计能力的培养,综合性较强;交通信号灯的设计与实现是集整个课程所学知识灵活应用地具体体现,对测试学生基本理论掌握程度,特别是设计能力的培养是十分有益的。

本实验可作为课程设计的内容之一;实验所需的软件环境、实验操作的步骤和方法以及调试工具在附录中都作了详细阐述,同时实验中常用的DOS和BIOS功能调用及使用方法也作了说明,为学生的预习和自学提供了帮助。

书中如有错误和不当之处,欢迎读者批评指正。

 

编者

2009年3月

目录

第一部分汇编程序设计1

第1章汇编程序设计初步1

1.1实验目的与要求1

一、实验目的1

二、实验要求1

1.2实验方法(汇编工具的使用)2

一、用编辑程序建立asm文件2

二、用汇编程序对源文件汇编产生目标文件obj2

三、用连接程序link产生执行文件exe3

四、运行程序4

五、程序调试及结果查看4

第2章程序的基本结构实验6

2.1循环程序设计6

实验1用表格形式显示字符6

实验2查找匹配字符串6

2.2分支程序设计9

实验1分类统计字符个数9

实验2显示英文月份9

2.3子程序设计11

第二部分I/O接口实验12

第3章微机原理与接口实验仪简介12

第4章硬件安装与硬件实验操作步骤14

第5章I/O接口实验16

实验1简单I/O接口实验16

实验28255可编程并行接口实验18

实验38253定时器实验21

实验4模/数转换实验22

附录23

附录1常用DOS命令23

附录2DEBUG主要命令25

附录3汇编程序出错信息28

附录4常用字符ASCII码值32

附录58088/8086指令系统33

附录6IBMPC/AT中断功能表36

附录7常用DOS功能调用(INT21H)37

附录8BIOS功能调用40

第一部分汇编程序设计

第1章汇编程序设计初步

1.1实验目的与要求

一、实验目的

学习程序设计的基本方法和技能,进一步加深对微机接口芯片原理及工作过程的理解,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。

为后继课程打下坚实的基础。

二、实验要求

1.上机前要做好充分的准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。

2.上机时要遵守实验室的规章制度,爱护实验设备。

要熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法及实验仪器。

在程序的调试过程中,有意识地学习及掌握debug程序的各种操作命令,以便掌握程序的调试方法及技巧。

为了更好地进行上机管理,要求用硬盘储存程序,并建立和使用子目录,以避免文件被别人删除。

有关目录及文件操作的DOS命令见附录1。

此外,为了便于统一管理硬盘中的文件,要求实验者按以下形式命名实验文件:

字母学号.asm

其中字母取a~z中的一个字母,按实验顺序从a至z排列。

如学号为850431学生的第二个实验程序所对应的文件名应为b850431.asm。

3.程序调试完后,须由实验指导教师在机器上检查运行结果。

每个实验完成后,应写出实验报告。

实验报告的要求如下:

1设计说明:

用来说明设计的内容、硬件原理图。

它包括:

程序名、功能、原理及算法说明、程序及数据结构、主要符号名的说明等。

2调试说明:

便于学生总结经验提高编程及调试能力。

它包括:

调试情况,如上机时遇到的问题及解决办法,观察到的现象及其分析,对程序设计技巧的总结及分析等;程序的输出结果及对结果的分析;实验的心得体会等。

3程序框图。

4程序清单。

1.2实验方法(汇编工具的使用)

一、用编辑程序建立asm文件

用文字处理软件编辑源程序。

常用编辑软件有:

EDIT.EXE、记事本、WORD等。

无论采用何种编辑工具,生成的文件必须是纯文本文件,且文件扩展名为asm。

下列程序完成两个字节数相加,并将和存于SUM变量中。

用编辑软件建立以abc.asm为文件名的源程序文件。

DATASEGMENT

BUFDB47H,6AH

SUMDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,BUF

ADDAL,BUF+1

MOVSUM,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

二、用汇编程序对源文件汇编产生目标文件obj

当源程序建立以后,用汇编程序masm对abc.asm源程序文件进行汇编,操作步骤如下:

(以下划线部分为用户键盘输入,“↙”代表回车,未划线部分为屏幕显示,小字部分为说明)。

C:

\MASM>masmabc↙

Microsoft(R)MacroAssemblerVersion5.00

Copyright(C)MicrosoftCrop1981-1985,1987,Allrightsreserved

Objectfilename[abc.obj]输入目标文件名,若采用括号[]中的名字,按↙

Sourcelisting[NUL.LST]若需要列表文件,输入文件名,按↙;如果不需要,直接按↙

Cross-reference[NUL.CRF]若需要交叉索引文件,输入文件名;如不需要,直接按↙

49758+451602Bytessymbolspacefree

0WarningErrors

0SevereErrors

回答上述问题后,汇编程序就对源程序进行汇编。

若汇编中发现源程序有语法错误,则列出错误语句所在行、错误代码及错误性质说明。

错误分警告错误(WarningErrors)和严重错误(SevereErrors)。

警告错误指汇编程序认为的一般性错误;严重错误指汇编程序认为无法进行正确汇编的错误,给出其错误个数,错误性质。

这时,就要对错误进行分析,找出问题和原因,然后再调用编辑程序对源程序进行修改。

修改后重新汇编,直到无错误为止。

除了用上述方法分步回答问题外,还可以用命令行的形式按顺序对相应提示予以回答,其格式是:

masm源文件名,目标文件名,列表文件名,交叉引用文件名;

其中文件名都不必给出扩展名,汇编程序会按照缺省情况使用或产生。

若只想对部分提示给出回答,则在相应位置用逗号隔开,若不想对剩余部分作答,则用分号结束。

例如以下命令经汇编后在当前目录下产生abc.obj文件,不产生lst文件和crf文件。

C:

\MASM>masmabc;↙

三、用连接程序link产生执行文件exe

C:

\MASM>linkabc↙

Microsoft(R)8086ObjectLinkerVersion5.00

Copyright(C)MicrosoftCrop1981-1985,1987,Allrightsreserved

RunFile[abc.exe]输入可执行文件名,若采用括号[]中的名字,按↙

ListFile[NUL.MAP]若需要映象文件,输入文件名,按↙;如果不需要,按↙

Libraries[NUL.LIB]若需要库文件,输入文件名,按↙;如果不需要库文件,按↙

Warning:

nostacksegment

上述给出的警告信息,表示用户程序没有定义堆栈段。

该警告不影响可执行程序的生成和正常运行,因为运行时会自动使用系统提供的缺省堆栈。

回答上述问题后,连接程序开始连接,若连接过程中有错,则显示错误信息。

此时,按错误提示,修改源程序,然后,回到第二步。

直至汇编无错误,连接无错误(错误NoStackSegment除外),在当前目录下产生可执行文件(exe),进入第四步。

同样也可以用命令行的形式按顺序对相应提示予以回答,其格式是:

link目标文件名,可执行文件名,内存映象文件名,库文件名;

其中不必给出扩展名,连接程序会按照缺省情况使用。

若只想对部分提示给出回答,则在相应位置用逗号隔开,若不想对剩余部分作答,则用分号结束。

例如以下命令行对abc.obj文件连接后在当前目录下产生abc.exe文件,其余文件均不需要。

C:

\MASM>linkabc;↙

从6.0版以后,Microsoft公司把MASM和LINK的功能由一个ML.EXE程序完成,只需一个命令就可以把源程序汇编并连接生成.EXE文件。

而不再需要分两步操作。

ML.EXE常用格式为:

ML[/F1][/Fm][/Fr][/c]源文件

其中,源文件名的扩展名(.asm)不能省,[]中的F必须大写,l,m,r,c必须小写,各可选项含义如下:

/F1:

产生.lst列表文件,缺省时不产生。

/Fm:

产生.map内存映象文件,缺省时不产生。

/Fr:

产生.sbr交叉参考文件,缺省时不产生。

/c:

只产生,obj目标文件,不产生.exe可执行文件。

缺省时只产生.exe文件。

例:

ML/Flabc.asm

以上命令会对已存在的abc.asm文件汇编且连接,并在当前目录下生成一个列表文件abc.lst和一个可执行文件abc.exe.

四、运行程序

设连接生成的执行文件为abc.exe,运行程序只需在DOS提示符下键入文件名即可,如:

C:

\MASM>abc↙

若程序能够运行但不能得到预期结果,则需要静态或动态查错。

静态查错即检查源程序,并对源程序进行修改,然后再汇编、连接、运行。

如果静态检查无法发现错误,则需动态查错。

五、程序调试及结果查看

这里使用DEBUG程序进行调试,DEBUG是一种使用广泛的强有力的汇编语言程序或二进制文件的调试工具。

设abc.asm经汇编及连接后,产生abc.exe文件,对它的调试操作如下:

1.把程序装入内存,并显示程序清单

C:

\MASM>debugabc.exe↙

-

此时,debug已将执行程序装入内存,可键入debug的有关命令调试程序。

-U↙用反汇编命令U列出程序清单

13E3:

0000B8E213MOVAX,13E2

13E3:

00038ED8MOVDS,AX

13E3:

0005A00000MOVAL,[0000]

13E3:

000802060100ADDAL,[0001]

13E3:

000CA20200MOV[0002],AL

13E3:

000FB44CMOVAH,4CH

13E3:

0011CD21INT21

……

2.查看数据段内容或查看寄存器内容

-DDS:

0000↙查看数据段内容

13E2:

0000476A000000000000-0000000000000000Gj..............

……

可见0000、0001单元内容为数据段定义的内容,分别为47H、6AH。

DEBUG状态下,缺省数制为十六进制数。

-R↙查看寄存器内容

AX=13E2BX=0000CX=0023DX=0000SP=0000BP=0000SI=0000DI=0000

DS=13D2ES=13D2SS=13E2CS=13E3IP=0003NVUPEIPLNZNAPONC

若查看指定寄存器内容,在R命令后跟上寄存器名,例:

-RAX↙查看寄存器AX的内容

AX13E2

↙   若需修改AX的值,则键入新值;若无需更改,按回车。

3.连续运行程序,查看结果

-G↙或-G=00013↙运行程序,0为运行起始地址,0013为断点地址

-DDS:

0000↙查看内存结果

13E2:

0000476AB100000000000000000000000000Gj..............

……

可见0002单元中内容已变为0000和0001两单元内容之和。

4.如果连续得不到正确结果,需分步跟踪运行

-T=0000↙0000这所需要运行指令的地址

AX=13E2BX=0000CX=0023DX=0000SP=0000BP=0000SI=0000DI=0000

DS=13D2ES=13D2SS=13E2CS=13E3IP=0003NVUPEIPLNZNAPONC

13E3:

00038ED8MOVDS,AX

显示单步执行后寄存器和标志状态之后,停在下一条指令开始处。

-T↙顺序运行下一条指令

……

5.退出DEBUG

-Q↙

 

第2章程序的基本结构实验

2.1循环程序设计

实验1用表格形式显示字符

一、实验目的与要求

1.熟悉汇编语言运行、调试环境及方法。

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

3.掌握显示输出DOS功能调用的使用方法。

4.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。

二、实验内容

按15行×16列的表格形式显示ASCII码为10H~FFH的所有字符。

每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII码为0)分隔。

三、分析与提示

1.显示字符可使用DOS功能调用的2号功能,使用方法如下:

MOVAH,02H

MOVDL,需显示字符的ASCII码值

INT21H

本实验中可把BL寄存器初始化为10H,显示完当前字符后使其加1以取得下一个字符的ASCII码。

若需显示的字符在BL寄存器中,则上述第二条指令为:

MOVDL,BL

2.显示空白符时,用其ASCII码值0置入DL寄存器。

每行结束时,用显示回车符(ASSII码值为0DH)和换行符(ASSII码值为0AH)来结束本行并开始下一行。

3.本程序为两重循环,需设置两个循环计数器,可用CL寄存器作为行计数器,初始值为15,CH寄存器作为列计数器,初始值为16。

实验2查找匹配字符串

一、实验目的与要求

1.进一步熟悉汇编语言运行、调试环境及方法。

2.进一步掌握循环程序的设计方法。

3.掌握显示输出、键盘输入DOS功能调用的使用方法。

二、实验内容

程序接收用户键入的一个关键字以及一个句子,如果句子中不包含关键字则显示“NoMatch!

”;如果句子中包含关键字则显示“Match”,且把该字在句子中的位置用十六进制数显示出来。

要求程序的执行过程如下:

Enterkeyword:

abc

Entersentence:

Wearestudyingabc.

Matchatlocation:

11Hofthesentence.

Enterkeyword:

xyz

Entersentense:

Wearestudyingabc

Nomatch!

Enterkeyword:

^C

三、分析与提示

程序可由三部分组成:

1.输入关键字和一个句子,分别存入相应的缓冲区中。

可用DOS功能调用0AH,使用方法如下:

字符缓冲区定义格式如下:

maxlendb32

actlendb?

stringdb32dup(?

缓冲区的第一个字节定义字符的最大个数;第二个字节为实际输入的字符个数,该数据由OAH功能根据用户实际输入自动计算并填入。

在这两个字节后,存放输入的字符串,字符串以回车(0DH)结束,但回车符不作实际输入字符的个数。

输入字符串程序段如下:

LEADX,MAXLEN

MOVAH,0AH

INT21H

2.在句子中查找关键字

关键字和句子中相应字段的比较可使用串比较指令。

为此必须定义附加段,但附加段和数据段可定义为同一段,以便于串指令的使用。

这样,相应的寄存器就有明确的定义:

SI寄存器为关键字的指针;DI寄存器为句子中正相比较的字段的指针;CX寄存器存放关键字的长度。

整个句子和关键字的比较过程可以用一个循环结构来完成。

循环次数为:

句子长度-关键字长度+1

在计算循环次数时,如遇到句子长度小于关键字长度,则显示“Nomatch!

”。

循环中还需用到BX寄存器,用来保存句子中当前正在比较字段的首地址。

BX、SI、DI寄存器的作用如图2.1所示:

图2.1在查找匹配字符串中使用的指针

3.输出信息可使用DOS功能调用的09H功能,09H功能为显示字符串,该字符串定义时必须以“$”结束。

显示字符串程序段如下:

LEADX,字符串首地址

MOVAH,09H

INT21H

4.将BX寄存器内的二进制数用十六进制数形式显示,需将BX的内容从左到右每四位为一组,采用循环移位的方法把所要显示的4位二进制数移到最右面。

若4位所表示的二进制数在0~9之间,则加上30H转换为相应ASCII码;若4位所表示的二进制数在A~F之间,则加上37H转换为相应ASCII码。

最后调用DOS功能调用的02H功能显示字符。

 

2.2分支程序设计

实验1分类统计字符个数

一、实验目的与要求

1.掌握分支程序的设计方法。

2.掌握二进制转换为十进制的方法

二、实验内容

程序接收用户键入的一行字符(个数≤80,字符串以回车结束),按字母、数字及其它字符分类统计,并以十进制数形式显示统计结果。

三、分析与提示

1.程序可使用DOS功能调用的0AH功能接收用户键入的字符,然后再逐个取出分类统计,大、小写字母均作为字母统计。

2.将统计结果以十进制数形式显示方法有两种,一是将统计结果除以10,商转换为ASCII码并显示,余数转换为ASCII码并显示(因字符总个数≤80);二是在统计过程中,某类字符个数加1后,用DAA指令调整为十进制数,然后将统计结果从左到右每四位为一组,转换为ASCII码并显示。

3.程序的执行过程如下:

Pleaseinputstring:

a6bc&*23g

Letter:

04

Digit:

03

Other:

02

实验2显示英文月份

一、实验目的与要求

1.进一步掌握分支程序的设计方法。

2.掌握汇编语言中查找表格的方法。

二、实验内容

程序接收用户键入的月份数,在终端上显示该月的英文缩写名。

三、分析与提示

1.根据要求,需建立一个英文缩写的月份表,该月份表可定义如下:

MONTABDB‘JAN’,‘FEB’,‘MAR’,…

2.根据用户输入的月份数可以计算出与其对应的表格地址,计算方法是:

MONTAB+(月份数-1)×3

3.键入月份可用DOS功能调用的0AH功能,但接收的月份数是ASCII码,必须转换为数字才能用上面公式。

4.程序的执行过程如下:

month?

5

MAY

month?

9

SEP

month?

2.3子程序设计

一、实验目的与要求

1.掌握子程序的设计方法。

2.掌握十六进制转换二进制、二进制转换为十进制的方法

二、实验内容

从键盘键入0~FFFFH之间的十六进制数,并转换成十进制在屏幕上显示出来。

三、分析与提示

1.采用子程序结构将据要求分成几个子程序实现。

子程序HEXIBIN实现从键盘取得十六进制数并转换为二进制数;子程序BINIDEC实现把此二进制数转换为十进制数并显示;另外用CRLF子程序显示回车和换行。

2.假设接收的十六进制数为a1a2a3a4,转换为二进制数的方法为:

(((0×16+a1)×16+a2)×16)+a3)×16+a4

可用BX存放部分和,初始化为0;每输入一位数,完成(BX)×16+该位数

3.二进制数转换为十进制数的方法是用该二进制数除以10000,商转换为ASCII码并用DOS功能调用的02H功能显示;再将余数除以1000,以次类推。

 

第二部分I/O接口实验

第3章微机原理与接口实验仪简介

超想微机原理与接口实验系统(超想—3000TC),如图1所示,是由武汉恒科电子教学仪器有限公司研制的产品,采用了超大规模定制芯片的通用仿真器,USB通讯模式,具有硬件自动检测功能、万用硬件扩展功能。

主实验箱电路板为国标2.0mm,结构设计合理。

图1超想-3000TC综合实验仪

实验仪提供的主要资源,如图2所示,有模拟量、开关量、LED彩灯、LED点阵区、LED八段数码管区、脉冲源、AD/DA实验区、I/O口扩展实验、8155、8255、8279、8253、8251串行通讯、8237DMA、8259中断、键盘显示、红外线、语音功放区、压力传感区、直流/步进电机区、按键开关区、万用实验扩展区等。

实验仪提供的万用扩展模块有CPLD/USB2.0扩展模块,可做CPLD、USB2.0扩展实验;IC卡、语音、温度扩展模块,可做IC卡、语音录放、数字温度实验。

随实验仪提供的系统仿真开发软件界面功能丰富,使用者可以在此环境下完成汇编程序的编辑、汇编、链接、调试工作。

图2超想-3000TC型实验仪结构分配图

第4章硬件安装与硬件实验操作步骤

一、微机原理与接口工作模式选择

做8086微机接口实验时,要将八段数码管右上角的三个小拨动开关同时拨向左边(即拨向88),将8279芯片左上方的小拨动开关拨向上边(即拨向88),将8279芯片右下方的红色拨动开关中,1、2、4拨向下边,3拨向上边。

二、实验箱与计算机的连接

实验箱与计算机用USB线直接相连即可。

连接后,右键单击“我的电脑”,打开“属性”窗口,选择“硬件”标签,单击“设备管理器”,查看实验箱连接到哪一个串口,并记录备用。

要求只能使用COM1至COM4;若是COM5或COM6,重新连接USB线。

三、硬件实验操作步骤

1、按上述要求安装好实验箱;

2、根据不同的实验要求,设计好实验电路,用导线进行连线;

3、打开实验箱电源;

4、启动HK88TE调试软件;

5、设置通讯口:

在HK88TE软件下,单击“设置”菜单,选择“通讯口”,打开如图3的对话框。

如在“设备管理器”中查看到实验箱连接到COM1,则在对话框中选择COM1;波特率选择9600,将延时因子调节到比较大的位置,点击“测

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

当前位置:首页 > 工程科技 > 能源化工

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

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