《微机原理与接口技术》实验指导书.docx
- 文档编号:26555951
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:34
- 大小:379KB
《微机原理与接口技术》实验指导书.docx
《《微机原理与接口技术》实验指导书.docx》由会员分享,可在线阅读,更多相关《《微机原理与接口技术》实验指导书.docx(34页珍藏版)》请在冰豆网上搜索。
《微机原理与接口技术》实验指导书
北方民族大学
BeifangUniversityofNationalities
《微机原理与接口技术》指导书
主编赵霞
校对牛勇
北方民族大学电气信息工程学院
二0一五年八月
一、如何使用星研集成环境软件
实验二基本的算术与逻辑运算实验
一、如何使用集成环境软件
本例子旨在通过建立一个具体的程序来介绍星研集成软件的使用方法以及它的强大的
调试功能。
使用户很快的上手,体验到我们软件功能的强大和方便。
本实例是将数据段中3000H~30FFH单元的内容传送给实验仪B4区的61C256的2000H~20FFH中;B4区的61C256在I/O设备区,使用
、
读写;再将它传送回数据段的6000H~60FFH中,程序是用汇编语言来编写。
下面介绍相应的操作步骤:
首先运行星研集成软件。
启动画面如图:
1、建立源文件
下面我们建立源文件,执行[主菜单»文件»新建],(或者点击图标
)打开窗口如下:
首先选择存放源文件的目录,输入文件名,注意:
一定要输入文件名后缀。
对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。
比如:
*.asm文件,使用TASM来对它编译。
本实例文件名为move.asm。
窗口如下:
按“确定”即可。
然后出现文件编辑窗口:
输入源程序,本实例的源程序如下:
.MODEL
TINY
;memorymode:
tiny
.STACK
100
;堆栈
.CODE
;开始程序段
START:
MOV
AX,@DATA
MOV
DS,AX
MOV
ES,AX
NOP
MOV
CX,100H
MOV
SI,3000H
MOV
DX,2000H
START1:
MOV
AL,[SI]
OUT
DX,AL
INC
SI
INC
DX
LOOP
START1
MOV
DI,6000H
MOV
DX,2000H
MOV
CX,100H
START2:
IN
DX,AL
MOV
[DI],AL
INC
DI
INC
DX
LOOP
START2
SJMP
$
Move
ENDP
END
START
输入源程序,如下图:
这样一个源文件就建立好了。
3.编译、连接文件
首先选择一个源文件,然后可以编译、连接文件了。
对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、EXE文件)。
编译、连接文件的方法有如下二种:
(1)使用[主菜单»项目»编译、连接]或[主菜单»项目»重新编译、连接]”。
(2)点击图标
或
来“编译、连接”或“重新编译连接”。
“编译连接”与“重新编译、连接”区别:
“重新编译、连接”不管源文件是否修改、编译软件是否变化、编译控制项有无修改,对源文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、EXE文件)。
编译、连接过程中产生的信息显示在信息窗的“建立”视中。
编译没有错误的信息如下:
若有错误则出现如下信息框:
有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。
这时用户可以作相应的修改,直到编译、连接文件通过。
4.调试
如果编译、连接正确后,可以开始调试程序。
进入调试状态方法有:
a)执行[主菜单»运行»进入调试状态]
b)点击工具条的
c)执行[主菜单»运行»装载DOB、HEX、BIN文件]
进入后的窗口如下:
在整个图片中我们可以看到相对应的窗口信息。
在“工作区窗”的“CommonRegister”中我们可以了解通用寄存器的信息。
中间的窗口为源程序窗口,用户可在此设置断点,设置光标的运行处,编辑程序等。
寄存器窗我们可以看到一些常用的寄存器的数值。
存贮窗1、存贮窗2显示相应的程序段(CS)、数据段(DS)、IO设备区的数据,还有变量窗,自动收集变量显示其中。
反汇编窗显示对程序反汇编的信息代码、机器码、对应的源文件。
在信息窗的“装载”视中,显示装载的代码文件,装载的字节数,装载完毕后,显示启始地址,结束地址。
这种船坞化的窗口比通常的窗口显示的内容更多,移动非常方便。
用鼠标左键点住窗口左边或上方的标题条,移动鼠标,将窗口移到您认为合适的位置;将鼠标移到窗口的边上,鼠标的图标变成可变化窗口时的形状,用鼠标左键点住,移动鼠标,变化一个或一组窗口的大小。
在调试过程中,可以根据您的需要,在[主菜单»查看]中打开:
寄存器窗、存贮器窗1、2、3、观察窗、变量窗、反汇编窗。
您也可以通过[主菜单»辅助»设置»格式],设置每一种窗口使用的字体、大小、颜色。
移动窗口到您喜欢的位置、大小。
您可以使用以下命令调试您的程序:
设置或清除断点(功能键为F2)
在当前光标行上设置或清除一个断点
单步进入(功能键F7)
单步执行当前行或当前指令,可进入函数或子程序。
连续单步进入(功能键Ctrl+F7)
连续执行“单步进入”,用鼠标点击
或按任意键后,停止运行。
单步(功能键F8)
单步执行当前行或当前指令,将函数或子程序作为一条指令来执行。
如果当前行中含有函数、子程序或发生中断,CPU将执行完整个函数、子程序或中断,停止于当前行或当前指令的下一有代码的行上。
连续单步(功能键Ctrl+F8)
连续执行“单步”,用鼠标点击
或按任意键后,停止运行。
运行到光标行(功能键F4)
从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击
,停止运行。
全速断点(功能键F9)
从当前地址开始全速运行用户程序,碰到断点或用鼠标点击
,停止运行。
全速运行(功能键Ctrl+F10)
从当前地址开始全速运行用户程序,此时,按用户系统的复位键,CPU从头开始执行用户程序,用鼠标点击
,停止运行。
全速运行时,屏蔽了所有断点,即不会响应任何断点。
停止运行
终止微机与仿真器之间通信(功能键ESC)。
注意:
欲终止微机与仿真器之间通信,功能键ESC是一个很方便的键,它的效果比点击相应的图标的效果要好。
建议用户多用ESC键。
在系统运行“连续单步”或者“连续单步进入”时ESC键被禁止,这时用户可以按键盘的其他任意键停止其运行。
5.调试的方法及技巧
一般来说,用户的程序或多或少的会有一些逻辑错误,我们的仿真器、实验仪和星研集成软件可以帮助用户很快的定位,很快的查出相应的错误。
在调试状态的窗口中我们可以看到很多的窗口,用户只要熟练地应用这些窗口来观察、分析数据就会很快的调试好程序,达到事半功倍的效果。
进入调试界面后,由于我们本次操作需要观察三个数据块:
数据段3000H~30FFH,数据段6000H~60FFH,I/O区2000H~20FFH,可以打开二到三个存贮器窗口,具体操作是:
[主菜单»查看]
然后根据你的需要打开不同的窗口。
调整后的调试界面为:
由于我们本次操作主要是观察存贮器窗口,所以我们拉大了这两个存贮器窗口的大小。
每个窗口设置了4个分页项:
,我们可以在不同的分页项设置不同的观察数据空间以及地址范围。
在
中可以选择CS:
Memory,DS:
Memory,I/O,根据需要可以做不同的选择。
在
中可以直接输入地址,然后按回车,就可以直接转到我们输入的地址的窗口上面观察数据。
由于我们在此程序中的写入数据的RAM空间分别为DS:
3000H~30FFH、DS:
6000H~60FFH、I/O区2000H~20FFH,故我们建立的分页项如下:
存贮0分页项:
存贮1分页项:
存贮2分页项:
我们这样设置界面的目的就是当用户要观察不同地址段的数据时,只要切换一下分页项就行了。
由于本次程序需要同时观察DS:
3000~30FFH、I/O:
2000~20FFH和I/O:
2000H~20FFH、DS:
6000H~60FFH,所以打开二个存贮器窗。
如图:
软件中总共存在3个存贮器窗。
可以同时观察三个不同的地址。
存贮器窗口支持数据的直接修改功能。
本软件的所有窗口中的数据都支持直接修改功能。
用户可以根据自己的需要在窗口中直接修改数据。
比如:
执行程序前,将DS:
3000H~300FH中的数据改为11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,在相对应的地址中直接输入数据即可。
如图:
一般刚刚写好的程序,在进入调试状态后,执行“单步”或者“单步进入”,我们推荐您能记住这些操作的相对应的功能键,这样您就在调试程序的过程中很方便。
在刚才的调试程序中我们多次执行“单步(F8)”命令,在工作区窗口的CommonRegister视中查看通用的寄存器:
我们可以观察到在本程序中所使用的一些寄存器的变化,比如AX、CX、DX、SI的数值的变化,每一次循环,CX减一,DX、SI加一,AX寄存器的低字节AL暂存从DS:
[SI]取出的数值:
11、22、33、44、55、66……。
我们可以看到存贮器窗口中的相对应的RAM的数据的变化。
比如
其中右边为相应数据的ASCII码。
切换分页项我们可以观察到其它地址的数据。
把光标移动到MOVDI,6000H行上,点击图标
(功能键F4),全速运行到光标行,检查IO:
2000H~20FFH内容,是否与DS:
3000H~30FFH相同,如果完全一样,说明以上程序没有任何问题。
切换分页项,存贮器窗显示DS:
6000H开始的单元内容,将光标移到JMP$行的左边,鼠标变为
,点击鼠标,在该行上设置了一个断点,也可以用鼠标点击该行,将光标移到鼠标处,点击图标
(功能键为F2),设置断点,重复操作,清除断点。
点击图标
(功能键F9),CPU全速断点运行到光标处停下,检查DS:
6000H~60FFH内容,与I/O:
2000H~20FFH内容是否一样,相同表示程序没问题;如果不相同,将光标移到MOVDI,6000H行上(具体操作是:
用鼠标点击该行,然后再点击图标
),使用单步进入命令F7或连续单步进入命令Ctrl+F7,检查结果,判断程序出错原因。
所以说星研集成软件为用户提供了许多实用和方便的观察、调试、分析的功能,其他的一些功能我们会在后续的实例中作更详细的介绍。
用户也可以依此类推,发掘出更多更好的为自己调试程序方便的功能
实验一数据传送
(综合设计性实验)
一、实验目的
熟悉星研集成环境软件的使用方法。
熟悉Borland公司的TASM编译器
熟悉8086汇编指令,能自己编写简单的程序,掌握数据传输的方法。
二、实验内容
1、熟悉星研集成环境软件。
2、编写程序,实现数据段的传送、校验。
A、验证下列指令,指出指令错误原因,并加以改正。
(1)MOV[BX],[SI]
(2)MOVAH,BX
(3)MOVAX,[SI][DI]
(4)MOVBYTEPTR[BX],2000H
(5)MOVCS,AX
(6)MOVDS,2000H
B、设各寄存器及存储单元的内容如下:
(DS)=0500H,(BX)=0010H,(SI)=0001H,(05010)=12H,(05011)=34H,(05012)=56H,(05013H)=78H,(05120)=ABH,(05121)=CDH,(05122H)=EFH
说明下列各条指令执行完毕后AX寄存器的内容,并上机验证。
(1)MOVAX,1200H
(2)MOVAX,BX
(3)MOVAX,DS:
[0120H]
(4)MOVAX,[BX]
(5)MOVAX,0110H[BX]
(6)MOVAX,[BX][SI]
(7)MOVAX,0110H[BX][SI]
C、编写程序,完成将DS:
1000H存储单元的内容传送到DS:
2020H单元中存放。
试分别用8086的直接寻址、寄存器间接寻址、基址加变址寻址等方法实现数据传送,并上机运行检查结果。
四、实验要求
1、复习8086指令系统中的传送类指令,了解各种寻址方式的使用。
2、按照题目要求在实验前编写好程序。
3、根据实验内容要求,观察并记录指令运行后寄存器的变化。
五、实验思考题
1、数据传送指令中,源操作数的物理地址是如何计算的,计算出实验中各题的源操作数的物理地址。
2、如果源操作数的地址由寄存器BP中的内容给出,源操作数在哪个段中?
物理地址如何计算?
实验二基本算术与逻辑运算
(综合设计性实验)
一、实验目的
1、熟悉算数和逻辑运算指令的功能。
2、进一步了解标志寄存器各标志位的意义和指令执行对它的影响。
二、实验内容
1、写出完成下述功能的程序段
(1)传送15H到AL寄存器。
(2)将AL的内容乘以2。
(3)传送15H到BL寄存器。
(4)AL的内容乘以BL的内容。
最后结果(AX)=?
2、写出完成下述功能的程序段
(1)从地址DS:
0000H单元中,传送一个数据58H到AL寄存器
(2)把AL寄存器的内容右移二位。
(3)再把AL寄存器的内容与字节单元DS:
0001H中的数据12H相乘。
(4)将乘积存入字单元DS:
0002H中。
3、将寄存器BX作地址指针,自BX所指的内存单元(0500H)开始连续存放着三个无符号数(10H、04H、30H)。
编写程序求三个数的和与积,并将结果存放在这三个数之后的单元中。
三、程序流程图(学生根据实验内容设计)
四、实验步骤
①在微机仿真实验系统下输入源程序并存盘;②对源程序进行编译、链接形成目标代码,同时排除源程序中的错误;③将编译、链接形成的目标文件下载到仿真实验系统中;④利用单步、运行到光标所在行等方式进行程序调试;⑤检查程序运行结果并进行分析
五、思考题
1、假设要清除偏移地址从0010H到0020H字存储单元中的内容,应该如何实现?
2、简要说明ADD指令和AND指令对标志位的影响。
实验三直线程序的设计
(综合设计性实验)
一、实验目的
熟悉8086汇编指令,学会使用星研集成环境软件,能自己编写简单的程序,熟悉BCD码。
二、实验内容
1、任意给定2个32位数据X=12345678,Y=5678ABCDH,求两个数的和。
提示:
注意原始数据在内存中的存放顺序。
运算时要注意先求低16bit的和,再求高16bit的和。
2、用查表的方法将一位十六进制数转换成与其对应的ASCII码。
提示:
0~9对应的ASCII码存入表格中,待转换的数据存入HEX中,ASC单元为预留的结果存放单元。
用查表的方法转换数据,通常把表的首地址送入BX中,把要查找的表内单元的偏移量送入AX中)
三、程序流程图(学生根据实验内容设计)
四、实验步骤
①在微机仿真实验系统下输入源程序并存盘;②对源程序进行编译、链接形成目标代码,同时排除源程序中的错误;③将编译、链接形成的目标文件下载到仿真实验系统中;④利用单步、运行到光标所在行等方式进行程序调试;⑤检查程序运行结果并进行分析
实验四分支、循环程序的设计
(综合设计性实验)
一、实验目的
1、熟悉使用8086指令,掌握汇编语言程序设计和调试方法
2、掌握分支程序的设计方法
3、掌握循环程序的设计方法
二、实验内容
1、将十六进制数对应的ASCII(设为X)转换成十六进制数,并保存在Y中。
提示:
因十六进制数中的0~9的ASCII码为30H~39H,A~F的ASCII码为41H~46H,所以转换前先要对给定的ASCII码值进行判断。
如果是在30H~39H的范围内,则将给定的ASCII码值减30H即得到对应的十六进制数;如果是在41H~46H的范围内,必须减37H才能得到相应的十六进制数。
2、计算1+2+3+...+100的和。
提示:
题目所给数列为等差数列,前项比后项小一。
设用AX累加器存放和,初值为0.BX为数列项(1,2,3,...100).AX←AX+BX做累加100次,CX存放累加次数,初值为100,递减到0为止
三、程序流程图(学生根据实验内容设计)
四、实验要求
1、复习8086指令系统中的传送指令、运算指令、跳转指令,了解这些指令的执行过程,能综合运用这些指令。
2、掌握分支、循环程序的设计思想和方法。
3、根据实验内容要求,观察并记录指令运行后寄存器、存储器、标志寄存器的变化。
实验五8255控制灯实验
(综合设计性实验)
一、实验目的与要求
1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。
学会使用8255并行接口芯片实现各种控制功能
2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。
3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。
二、实验设备
STAR系列实验仪一套、PC机一台
三、实验内容
编写程序:
使用8255芯片控制LED指示灯
1、点亮1、3、5、7发光管。
2、点亮2、4、6、8发光管。
3、尝试让第一个发光管闪烁。
4、仿照附表中所给样例程序1,修改程序使灯灯从左往右自动循环亮。
5、仿照附表中所给样例程序2,打开第一个开关使灯全亮,关掉第一个开关使灯全灭。
四、实验原理图
连接线路验证8255的功能,熟悉它的使用方法。
连线说明:
B4区:
CS、A0、A1
——
A3区:
CS1、A1、A2
B4区:
JP56(PA口)
——
G6区:
JP65
B4区:
JP53(PB口)
——
G6区:
JP80(开关)
5、运行程序,观察实验结果,看灯是否按照要求亮灭
附表:
1、编写程序:
使用8255芯片控制LED指示灯,让灯从右往左自动循环亮。
MODELTINY
COM_ADDEQU0F006H;控制口地址
PA_ADDEQU0F000H;PA口地址
PB_ADDEQU0F002H;PB口地址
PC_ADDEQU0F004H;PC口地址
STACK100
DATASEGMENT
LED_DATADB01111111B;第一个灯亮
DB10111111B;第二个灯亮
DB11011111B;第三个灯亮
DB11101111B;第四个灯亮
DB11110111B;第五个灯亮
DB11111011B;第六个灯亮
DB11111101B;第七个灯亮
DB11111110B;第八个灯亮
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
NOP
MOVDX,COM_ADD
MOVAL,10001111B;PA口为输出,PB、PC口为输入
OUTDX,AL;将控制字写入控制口地址
MOVDX,PA_ADD;PA口地址
MOVAL,0FFH
OUTDX,AL;灯全熄灭,把PA口写成FF
LEABX,LED_DATA;BX指向LED_Data的首地址
START1:
MOVAL,0
MOVCX,8
MOVSI,0
AGAIN:
XLAT;AL=BX+AL
OUTDX,AL
CALLDL500ms
INCSI
MOVAX,SI
LOOPAGAIN
JMPAGAIN1
AGAIN1:
JMPSTART1
DL500msPROCNEAR;延时子程序
PUSHCX
MOVCX,60000
DL500ms1:
LOOPDL500ms1
POPCX
RET
ENDP
CODEENDS
ENDSTART
2、编写程序,使用8255芯片控制LED指示灯,按下开关则对应的灯亮,断开开关则对应的灯灭。
MODELTINY
COM_ADDEQU0F006H;控制口地址
PA_ADDEQU0F000H;PA口地址
PB_ADDEQU0F002H;PB口地址
PC_ADDEQU0F004H;PC口地址
STACK100
DATASEGMENT
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
NOP
MOVDX,COM_ADD
MOVAL,10001111B;设置PA口为输出,PB、PC口为输入
OUTDX,AL;将控制字写入控制口地址
AGAIN:
MOVDX,PB_ADD
INAL,DX;读PB口开关的状态
MOVDX,PA_ADD
XORAL,0FFH
OUTDX,AL;将开关状态取反后写入PA口控制灯的状态
CALLDL500ms
JMPAGAIN
DL500msPROCNEAR;延时子程序
PUSHCX
MOVCX,60000
DL500ms1:
LOOPDL500ms1
POPCX
RET
ENDP
CODEENDS
ENDSTART
6、实验扩展及思考
1、使用8255控制LED指示灯,实现交通灯功能。
2、如何对8255的PC口进行位操作?
实验六8259A中断控制器实验
(综合设计性实验)
一、实验目的与要求
了解8259A的内部结构、工作原理;了解8259A与8088的接口逻辑;掌握对8259A的初始化编程方法,了解8088是如何响应中断、退出中断的。
复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。
二、实验设备
STAR系列实验仪一套、PC机一台
三、实验内容
1、编制程序:
拨动单脉冲开关,“
”送给8259A的IR0,触发中断,8088计数中断次数,显示于G5区的数码管上
四、实验程序流程图(学生根据实验内容设计)
五、实验原理图
六、实验步骤
1、连线说明:
B3区:
CS、A0
——
A3区:
CS1、A1
B3区:
INT、INTA
——
EMU598+:
INTR、INTA
B3区:
IR0
——
B2区:
单脉冲
E5区:
CS、A0
——
A3区:
CS5、A1
E5区:
CLK
——
B2区:
2M
E5区:
A、B、C、D
——
G5区:
A、B、C、D
2、运行程序
3、上下拨动单脉冲开关,拨动二次,产生一个“
”,观察结果,数码管上显示的次数与拨动开关次数是否对应。
七、演示程序
.MODEL
TINY
EXTRN
Display8:
NEAR
IO8259_0
EQU
0F000H
IO8259_1
EQU
0F002H
.STACK
100
.DAT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理与接口技术 微机 原理 接口 技术 实验 指导书