微机原理及应用实验报告Word文件下载.docx
- 文档编号:19670581
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:24
- 大小:393.35KB
微机原理及应用实验报告Word文件下载.docx
《微机原理及应用实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理及应用实验报告Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
下面我们建立源文件,执行[主菜单»
文件»
新建],(或者点击图标
)打开窗口如下:
首先选择存放源文件的目录,输入文件名,注意:
一定要输入文件名后缀。
对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。
比如:
*.asm文件,使用TASM来对它编译。
本实例文件名为move.asm。
窗口如下:
按“确定”即可。
然后出现文件编辑窗口:
输入源程序,本实例的源程序如下:
.MODEL
TINY
;
memorymode:
tiny
.STACK
100
堆栈
.CODE
开始程序段
START:
MOV
AX,@DATA
DS,AX
ES,AX
NOP
CX,100H
SI,3000H
DX,2000H
START1:
AL,[SI]
OUT
DX,AL
INC
SI
DX
LOOP
START1
DI,6000H
START2:
IN
[DI],AL
DI
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、观察窗、变量窗、反汇编窗。
您也可以通过[主菜单»
设置»
格式],设置每一种窗口使用的字体、大小、颜色。
移动窗口到您喜欢的位置、大小。
首先在“种类”中选择一个窗口,然后选择“字体”、“大小”,在“颜色”中选择某一类,在“前景”、“背景”中选择您喜欢的颜色。
对于高级语言,在您的程序前有一段库文件提供的初始化代码,
(当前可执行标志)不会出现在您的文件行上,如果您使用C语言,可将光标移到main函数上,按F4功能键,让CPU全速运行到main行上后停下;
如果您使用PL/M语言,按F7功能键,让CPU“单步进入”,运行到您的任何一个可执行行后停下。
您可以使用以下命令调试您的程序:
设置或清除断点(功能键为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,检查结果,判断程序出错原因。
实验二系统中断调用
通过人机会话可以获取程序运行所需要的数据,本实验应用系统中断功能的调用来实现人机对话。
首先计算机询问用户姓名,等待用户输入姓名的汉语拼音,然后将输入的汉语拼音显示在屏幕上,请用户认可,用户输入“Y”,程序结束,否则再次询问用户名。
实验涉及DOS中断的INT21H和BIOS中断的INT10H。
通过阅读并调试示例程序,掌握程序中所涉及的系统中断功能,以及利用系统中断功能的编程方法。
系统中断调用。
五、参考程序
.MODELTINY
.STACK100
.DATA
MESG1DB'
Whatisyourname?
$'
MESG2DB'
(Y/N)$'
BUFDB30DUP(?
)
.CODE
MOVAX,@DATA
MOVDS,AX
AGAIN:
MOVAH,0;
设置光标
MOVAL,19
INT10H
MOVAX,0600H
MOVBH,7
MOVCX,0
MOVDX,184FH
INT10H
MOVAH,9
MOVDX,OFFSETMESG1
INT21H;
询问“Whatisyourname?
”
MOVDL,0AH
MOVAH,2
INT21H
MOVAH,0AH
MOVDX,OFFSETBUF
键入名字,换行结束
MOVBL,BUF+1
MOVBH,0
MOVSI,OFFSETBUF+2
MOVBYTEPTR[BX+SI],'
;
字节类型,在键入字符串后加'
MOVAH,9
MOVDX,OFFSETMESG2
显示'
Y/N'
MOVAH,1
CMPAL,'
Y'
JNZAGAIN
MOVAH,4CH
ENDSTART
六、实验步骤
1.仔细阅读实验内容及要求,根据要求编写汇编语言源程序。
2.上机编辑、调试源程序。
3.在线调试源程序,观查运行结果。
十一、思考问题
如何修改程序使用户的确认信息“Y”无论大小写均可使程序结束?
实验三8255控制交通灯
使用8255的PA0..2、PA4..6控制LED指示灯,实现交通灯功能。
输入程序,连接线路验证8255的功能,熟悉它的使用方法。
1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。
学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。
2、熟悉8255内部结构和与8086的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。
8255与8086接口应用。
五、实验原理图
1、连线说明:
B4区:
CS(8255)、A0、A1
——
A3区:
CS1、A0、A1
JP56(PA口)
F5区:
JP65
2、观察实验结果,是否能看到模拟的交通灯控制过程。
七、演示程序
COM_ADD
EQU
0F003H
PA_ADD
0F000H
PB_ADD
EQU
0F001H
PC_ADD
0F002H
.STACK
.DATA
LED_Data
DB
01111101B
东西绿灯,南北红灯
11111101B
东西绿灯闪烁,南北红灯
10111101B
东西黄灯亮,南北红灯
11010111B
东西红灯,南北绿灯
11011111B
东西红灯,南北绿灯闪烁
11011011B
东西红灯,南北黄灯亮
DX,COM_ADD
AL,80H
PA、PB、PC为基本输出模式
DX,PA_ADD
灯全熄灭
MOV
AL,0FFH
LEA
BX,LED_Data
AL,0
XLAT
CALL
DL5S
CX,6
MOVAL,1
OUT
DL500ms
AL,2
CALL
DL3S
AL,3
START3:
AL,4
AL,3
LOOP
START3
AL,5
JMP
DL500ms
PROC
NEAR
PUSH
CX
CX,60000
DL500ms1:
DL500ms1
POP
RET
DL3S
PROC
DL3S1:
DL3S1
CX,10
DL5S1:
DL5S1
END
八、思考问题
如何改变红绿灯的延时时间?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 应用 实验 报告