微机原理汇编实验四.docx
《微机原理汇编实验四.docx》由会员分享,可在线阅读,更多相关《微机原理汇编实验四.docx(12页珍藏版)》请在冰豆网上搜索。
![微机原理汇编实验四.docx](https://file1.bdocx.com/fileroot1/2023-2/1/91e5e02d-8832-41bc-8f8a-33b08d80943f/91e5e02d-8832-41bc-8f8a-33b08d80943f1.gif)
微机原理汇编实验四
微机原理与接口技术课程实验报告
实验名称:
___地址译码电路设计实验________
姓名:
应旻婕学号:
1452536同组:
邓修齐实验日期:
2016年11月15日
一、实验目的
(1)学习3-8译码器在接口电路中的应用。
(2)掌握地址译码电路的一般设计方法。
二、实验器材
PC微机一台、TD-PIT+实验系统一套。
三、实验内容
用74LS138译码器设计地址译码电路,并用其输出作为基本输入输出
微机接口电路中,常采用74LS138译码器来实现I/O端口或存储器的地址译码。
74LS138有3个输入引脚、3个控制引脚及8个输出引脚,其管脚信号如图6所示。
当3个控制信号有效时,相应于输入信号A、B、C状态的那个输出端为低电平,该信号即可作为片选信号。
32位扩展系统总线上有一个IOM/信号,该信号为低电平时指示当前操作为I/O操作,为高电平指示当前操作为存储器操作,它和译码器不同的连接可以用来区分是I/O端口译码还是存储器端口译码。
32位总线地址是由A2开始,所以地址是以4字节边界对齐的。
实验系统的I/O地址空间共有256字节,偏移地址一般从00H~FFH。
起始地址由PC机系统分配,可以用CHECK程序读出。
所以设计地址译码电路,主要是针对低8位地址线译码,得到偏移在00H~FFH之间的端口。
本实验要求不使用总线上的片选信号,自行设计端口偏移地址分别为C0H~DFH和E0H~FFH的译码电路,然后用译码输出作为基本输入输出单元的片选。
编写程序,完成I/O数据操作。
四、实验方案(简要总结)
基础实验:
(1)确认从PC机引出的两根扁平电缆已经连接在实验台上。
机引出的两根扁平电缆已经连接在实验台上。
(2)按图所示连接实验线路。
(3)首先运行CHECK查看I/OI/O端口始地址。
(4)利用设计好的端口、地址编写程序,然后译链接。
(5)运行程序,拨动开关观看数据灯显示是否正确。
拓展实验:
修改相关地址,重复试验,观察现象
五、实验结果及体会
1、实验结果
⏹基础实验
1)根据实验指导书连线如图所示:
2)进入tddebug,获取得到各I/O端口端口号如图所示
3)输入汇编语言代码如图所示:
4)编译、连接文件后,运行程序结果如图所示
●结果:
开关K0-K7分别与LED灯D0-D7相对应,打开/闭合开关K7-K0,对应的LED小灯D7-D0也依次点亮/熄灭。
●结论:
学习并掌握了静态存储器操作原理。
学习了32位总线存储器接口电路设计。
掌握不同总线字节宽度访问存储器的编程方法。
●分析:
试验中PUSH,POP,CALL,INT等指令都会用到栈,必须为它们分配合适空间。
该程序的功能是通过不断地读开关的状态并输出到LED灯实现对LED灯的控制。
⏹拓展实验
连线图不变
经过计算后得出结果,将程序代码中的0e0h替换为0a0h
输入汇编语言代码如图所示:
编译、连接文件后,运行程序结果如图所示
●结果:
开关K0-K7分别与LED灯D0-D7相对应,打开/闭合开关K7-K0,对应的LED小灯D7-D0也依次点亮/熄灭。
●结论:
学习并掌握了静态存储器操作原理。
学习了32位总线存储器接口电路设计。
掌握不同总线字节宽度访问存储器的编程方法。
●分析:
观察到的现象和基础实验完全相同,但本质上有区别,要深入探究其中原理。
2.实验心得
本次实验不难,但需要一颗细致的心。
连接电路是一个细致的活,经过几次检测线路,才发现线路问题,经过重新连接电路,得到预期效果。
在做地址译码电路设计实验前,我以为不会难做,就像以前做物理实验一样,做完实验,然后两下子就将实验报告做完。
直到做完实验时,我才知道其实并不容易做,但学到的知识与难度成正比,使我受益匪浅。
通过这个实验,我学习了汇编语言,掌握了汇编语言的基本语法和编程,同时我掌握了在PC机上不同进制数及编码相互转换的程序设计方法,部分DOS功能调用使用方法,并且熟悉了Tddebug调试环境和对TurboDebugger的使用。
这次的实验,我学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我受益匪浅。
六、实验程序清单
1.基础实验代码
;地址译码电路设计实验
;*****根据查看端口资源修改下列符号值*****
;IOY0EQU0DC00H;片选IOY0对应的端口起始地址
Y7EQUIOY0+0E0H;译码电路输出Y7对应的端口地址
STACKSEGMENTSTACK
DW256(?
)
STACK1ENDS
DATA1SEGMENT
MESDB‘Pressanykeytoexit!
’,0AH,0DH,0AH,0DH,’$’
DATA1ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA1
START:
MOVAX,DATA1
MOVDS,AX
MOVDX,OFFSETMES;显示退出提示
MOVAH,09H
INT21H
AL:
MOVDX,Y7;读写片选接Y7端口
INAL,DX
OUTDX,AL
MOVAH,1;判断是否有按键按下
INT16H
JZA1;无按键则跳回继续循环,有则退出
QUIT:
;结束程序退出
MOVAX,4c00h
INT21H
CODEENDS
ENDSTART
2.拓展实验代码
;地址译码电路设计实验
;*****根据查看端口资源修改下列符号值*****
;IOY0EQU0DC00H;片选IOY0对应的端口起始地址
Y7EQUIOY0+0A0H;译码电路输出Y7对应的端口地址
STACKSEGMENTSTACK
DW256(?
)
STACK1ENDS
DATA1SEGMENT
MESDB‘Pressanykeytoexit!
’,0AH,0DH,0AH,0DH,’$’
DATA1ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA1
START:
MOVAX,DATA1
MOVDS,AX
MOVDX,OFFSETMES;显示退出提示
MOVAH,09H
INT21H
AL:
MOVDX,Y7;读写片选接Y7端口
INAL,DX
OUTDX,AL
MOVAH,1;判断是否有按键按下
INT16H
JZA1;无按键则跳回继续循环,有则退出
QUIT:
;结束程序退出
MOVAX,4c00h
INT21H
CODEENDS
ENDSTART