微机接口技术.docx
《微机接口技术.docx》由会员分享,可在线阅读,更多相关《微机接口技术.docx(10页珍藏版)》请在冰豆网上搜索。
微机接口技术
成都理工大学
核技术与自动化工程学院
实
验
报
告
课程名称:
微机原理与接口技术
姓名:
李文国
学号:
200706080109
专业:
辐射防护与环境工程
学期:
2009-2010
(2)
任课教师:
方方
2010年4月28日
软件实验
(2)名称:
拆字和拼字程序
实验人员:
李文国指导老师:
方方等
实验地点:
H201实验时间:
2010.4.7
一、实验目的
进一步熟悉汇编语言指令和汇编语言设计方法及调试方法。
二、实验设备
EMU8086编程仿真软件
三、实验内容
本次实验分为拆字和拼字两个独立的程序。
拆字程序:
将21000H单元内容拆开,高4位送21001H单元的低位,低4位送21002H单元的低位,21001H单元和21002H单元高位清零。
拼字程序:
将21000H、21001H单元的低4位分别送入21002H单元的高低位。
四、实验步骤
在21000H-21002H单元预置任意数,然后在EMU8086环境下,完成源程序的编制,编译通过后调入仿真器运行,最后查看21000H-21002H单元内容的变换情况。
在调试程序时,可以运用单步或断点方式运行程序。
需要注意,运行程序之前需对源数据存储单元预制数值。
对某一单元预置数可以通过程序赋值或直接双击该内存单元进行修改的2种方法实现。
五、程序流程图
六、程序及运行结果
拆字程序:
MOVAX,2100H
MOVDS,AX
MOVBX,0H
MOVAL,65H;通过程序赋值
MOV[BX],AL
MOVDL,AL
ANDAL,0F0H
SARAL,4
INCBX
MOV[BX],AL
MOVAL,DL
ANDAL,0FH
INCBX
MOV[BX],AL
拼字程序:
MOVAX,2100H
MOVDS,AX
MOVBX,0H
MOVAL,23H
MOV[BX],AL
MOVAL,67H
MOV[BX+1],AL
MOVAH,[BX]
ANDAH,0FH
SHLAH,4
MOVAL,[BX+1]
ANDAL,0FH
ORAL,AH
MOV[BX+2],AL
图一拆字结果
图二拼字结果
注释:
如果图片无法显示完整,请将鼠标移到图上点击右键,点击“文字环绕---四周型环绕”即可。
七、思考
如何在汇编语言中实现一个字节的高低位交换以及哪些指令可以实现一个字节的高低位交换?
微机接口中没有直接进行交换的指令,这点不同于单片机。
实现交换要借助数据传送类指令中的MOV指令和逻辑操作类指令中的移位指令,如SAL、SAR、SHL、SHR等,但要注意它们的区别,具体操作程序中已有体现,在此不再累述。
软件实验(5)名称:
数据区排序程序
实验人员:
李文国指导老师:
方方等
实验地点:
H201实验时间:
2010.4.20
一、实验目的
熟悉汇编语言指令和掌握汇编语言设计方法及程序调试方法。
二、实验设备
EMU8086编程仿真软件
三、实验内容
编写并调试一个排序程序,实现用冒泡法将内存单元中的几个字节无符号的正整数(假设在21000H~2100FH单元中),按从小到大(或从大到小)的顺序重新排列。
四、程序流程图
图一排序流程图
五、实验步骤
首先对21000H-2100FH单元预置16个随机数,然后在EMU8086环境下,完成源程序的编制,编译通过后调入仿真器运行,最后查看21000H-2100FH单元内容的变换情况。
在调试程序时,可以运用单步或断点方式运行程序。
六、程序及运行结果
movax,2100h
movds,ax
movbx,0
mk:
movcx,15
k1:
moval,[bx]
cmpal,[bx+1]
jak2
incbx
loopk1
jmpfinish
k2:
moval,[bx+1]
movah,[bx]
mov[bx],al
mov[bx+1],ah
movbx,0
jmpmk
finish:
图二排序前随机数
图三排序后结果
七、思考
假设21000H-2100FH单元中内容为有符号整数,按从小到大顺序排列,如何修改程序。
以上实现的是无符号数的排序,使用了JA、JNA、JNC、JC等指令;实现有符号数的排序,可使用JG、JGE、JL、JLE等指令。
两者的实现原理是相同的,这里要注意的是如何避免死循环,一是不能用C语言的思维直接两重循环,因为for与movcx是不同的;二是学会用jmp跳出循环。
硬件实验
(2)名称:
交通灯控制
实验人员:
李文国指导老师:
方方等
实验地点:
H201实验时间:
2010.4.27
一、实验目的
通过模拟交通灯控制时序,掌握顺序控制程序的设计方法。
二、实验设备
EMU8086编程仿真软件
三、实验内容
控制地址为4的12个3种颜色的LED,模拟交通灯管理。
四、程序流程图
图一交通灯流程图
五、接口说明
累加器AX的数据与交通灯相对应,Di=1,交通灯点亮;Di=0,交通灯熄灭。
下表是累加器AX与交通灯具体对应关系。
AX
15~12
11
10
9
8
7
6
5
4
3
2
1
0
方向
X
西
北
东
南
交通灯
X
绿
黄
红
绿
黄
红
绿
黄
红
绿
黄
红
六、程序及运行结果
Sta:
movax,0000100001100001b
out4,ax
movcx,120
d1:
nop
loopd1
movax,0000010001010001b
out4,ax
movcx,60
d2:
nop
loopd2
movax,0000001100001100b
out4,ax
movcx,120
d3:
nop
loopd3
movax,0000001010001010b
out4,ax
movcx,60
d4:
nop
loopd4
JmpSta
图二交通灯仿真图
七、思考
流程图中长、短延时可否用同一个延时程序实现?
如果可以,如何修改程序。
可以用一个程序实现,方法是调用子程序,使用CALL指令
Sta:
movax,0000100001100001b
out4,ax
calla1
movax,0000010001010001b
out4,ax
calla2
movax,0000001100001100b
out4,ax
calla1
movax,0000001010001010b
out4,ax
calla2
jmpsta
a1:
movcx,120
a2:
movcx,60
d6:
nop
loopd6
ret
八、心得体会
1、注意OUT指令与MOV指令的区别,起初因为粗心写错,没有得出结果
2、12--15位为随机数,如果能起到控制灯的作用,模拟更贴近现实
3、准确的延时是很难做到的,因为延时的长短因计算机的不同而有区别出师表
两汉:
诸葛亮
先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。
诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
宫中府中,俱为一体;陟罚臧否,不宜异同。
若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。
侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:
愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:
愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。
先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。
侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也
。
臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。
先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。
后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
先帝知臣谨慎,故临崩寄臣以大事也。
受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。
今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。
此臣所以报先帝而忠陛下之职分也。
至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。
若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。
臣不胜受恩感激。
今当远离,临表涕零,不知所言。