微机实验报告整理部分.docx
- 文档编号:30575964
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:22
- 大小:316.63KB
微机实验报告整理部分.docx
《微机实验报告整理部分.docx》由会员分享,可在线阅读,更多相关《微机实验报告整理部分.docx(22页珍藏版)》请在冰豆网上搜索。
微机实验报告整理部分
实验一两个多位十进制数相加的实验
一、实验目的
学习数据传送和算术运算指令的用法
熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容
将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序框图
图3-1
四、参考程序清单
程序名:
XIANGJ.ASM
DATASEGMENT
DATA1DB33H,39H,31H,37H,34H;被加数
DATA1ENDEQU$-1
DATA2DB34H,35H,30H,38H,32H;加数
DATA2ENDEQU$-1
SUMDB5DUP(?
)
DATAENDS
STACKSEGMENT
STADB20DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVAX,TOP
MOVSP,AX
MOVSI,OFFSETDATA1END
MOVDI,OFFSETDATA2END
CALLADDA
MOVAX,4C00H
INT21H
ADDAPROCNEAR
MOVDX,SI
MOVBP,DI
MOVBX,05H
AD1:
SUBBYTEPTR[SI],30H
SUBBYTEPTR[DI],30H
DECSI
DECDI
DECBX
JNZAD1
MOVSI,DX
MOVDI,BP
MOVCX,05H
CLC
AD2:
MOVAL,[SI]
MOVBL,[DI]
ADCAL,BL
AAA
MOV[SI],AL
DECSI
DECDI
LOOPAD2
MOVSI,DX
MOVDI,BP
MOVBX,05H
AD3:
ADDBYTEPTR[SI],30H
ADDBYTEPTR[DI],30H
DECSI
DECDI
DECBX
JNZAD3
RET
ADDAENDP
CODEENDS
ENDSTART
实验二排序实验
一、实验目的
掌握用汇编语言编写排序程序的思路和方法。
二、实验内容
将指定内存出开始的数据(最多为4位数)按从大到小的顺序排列。
第一个数字表示数据的个数(不是要比较的数值!
!
!
)。
三、程序流程图
图3-2
四、程序清单
程序名:
PAIX.ASM
DATASEGMENT
ADDRDW8,234,35,67,876,54,39,765,237
DATAENDS
STACKSEGMENT
STADW32DUP(?
)
TOPDW?
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACK
MOVSS,AX
MOVSP,TOP
MOVCX,WORDPTRADDR[0]
DECCX
LOOP1:
MOVDI,CX
MOVBX,2
LOOP2:
MOVAX,WORDPTRADDR[BX]
CMPAX,WORDPTRADDR[BX+2]
JGECCC
XCHGAX,WORDPTRADDR[BX+2]
MOVWORDPTRADDR[BX],AX
CCC:
ADDBX,2
LOOPLOOP2
MOVCX,DI
LOOPLOOP1
EXIT:
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
实验三自编程序上机调试
一、实验目的
掌握用汇编语言编写排序程序的思路和方法。
二、实验内容
选作业题中题目上机调试。
HELLO.ASM
DISPMACROPOS
MOVDX,OFFSETPOS
MOVAH,09
INT21H
ENDM
STACKSEGMENTstack
dw256dup(?
)
STACKENDS
DATASEGMENT
STR1DB'HELLOWORLD'
LENEQU$-STR1
DB0DH,0AH,'$'
STR2DBLENDUP(?
)
DB0DH,0AH
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
DISPSTR1
LEASI,STR1
ADDSI,LEN-1
LEADI,STR1
MOVCX,LEN
MOVAL,[SI]
L1:
MOV[DI],AL
INCDI
DECSI
LOOPL1
DISPSTR2
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验四自编程序上机调试
一、实验目的
掌握用汇编语言编写排序程序的思路和方法。
二、实验内容
选作业题中题目上机调试。
YIWEI.ASM
STACKSEGMENTSTACK
DB10DUP(?
)
STACKENDS
DATASEGMENT
XDW6
RESULTDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVDX,X
MOVCL,2
SALDX,CL
MOVRESULT,DX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验五8255并行I/O口实验
一、实验要求
利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输入,PB口作输出。
二、实验目的
1、了解8255芯片结构及编程方法。
2、了解8255输入/输出实验方法。
三、预备知识
8255是Intel公司生产的与Intel8080/8085系列的MPU配套的可编程外围接口电路,简称PPI。
它有A、B、C三个八位端口寄存器,通过24位端口线与外部设备相连,基中C口可分为上半部和下半部。
这24根端口线全部为双向三态。
三个端口可分二组来使用,可分别工作于三种不同的工作方式。
四、实验原理图及连线
1、本实验主要用到的模块:
8255模块、开关量输出模块、0-1指示模块、实验译码单元等;
2、PA0-PA7分别接开关量输出模块S0-S7对应的插座;
3、PB0-PB7分别接0-1指示模块DO71-DO78对应的插座;
4、8255A的片选/CS接地址译码单元的2A0-2A7;
5、数据线XD0—XD7接系统数据线区的任一插座。
图3-3
五、实验内容
将实验的线路连接好后,编程,将8255的A口作为输入,输入信号由8个逻辑电平开关提供,B口作为输出,其内容由发光二极管来显示。
六、程序框图
见图3-4。
图3-4
七、实验步骤
1、参照图中的内容连好线;
2、运行上位机软件,装载并运行相应程序即可(联机请参考程序8255.asm)。
注意:
同学们自己编写程序时,8255的/CS连线可以接地址译码单元的其他信号,其它连线相同。
如果用的端口与本实验不一样,也可以改变IO口的连线。
八、仪器配置
ZY15MicInt12BB微机原理及接口实验箱一台。
九、实验现象
当读到某个开关处于高电平时,对应的发光二极管就会亮。
十、思考题参考答案(请同学们务必理解后用自己的话组织作答)
根据程序列出实验中8255的各个端口的地址,如果8255的/CS改接译码信号280H,其它信号不变,那么对应的端口地址又是多少?
答案:
8255命令口—2A3H,PA口—2A0H,PB口—2A1H,PC口—2A2H;
8255的/CS改接译码信号280H后,对应的端口地址为:
8255命令口—283H,PA口—280H,PB口—281H,PC口—282H
十一、问题及解答(请同学们务必理解后用自己的话组织作答)
如果学生在连好线后,系统不能正常启动,那么一定是8255的/CS线没连接,这时要再检查一下连线。
该模块的8255的所有端口(PA、PB、PC)都和接线柱直接相连,可以通过改动8255的工作方式和I/O方式,请同学们自己连线编程,完成实验,比如老师可以提要求采用PB口输入,PC口输入等。
实验完成后,请同学们根据做实验的情况填写实验报告。
十二、试验程序
8255.ASM
L8255_CMDEQU2A3H
L8255_PAEQU2A0H
L8255_PBEQU2A1H
L8255_PCEQU2A2H
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE
BEGIN:
MOVCX,0FFH
AA:
LOOPAA
MOVDX,L8255_CMD
MOVAL,9CH;10011000
OUTDX,AL
NOP
NOP
NOP
NOP
NOP
BB:
MOVDX,L8255_PA
INAL,DX
XORAL,0FFH
MOVDX,L8255_PB
OUTDX,AL
JMPBB
CODEENDS
ENDBEGIN
十三:
实验结果分析
按照实验指导连接电路之后将所有的开关都置于高电平,然后就所有的指示灯都亮了,观察开关置高电平这个动作所代表的代码进入AL,然后跟ff进行异或运算,运算后低电平时指示灯亮。
所以开关需要置高电平,如果置低电平的话,指示灯熄灭。
由此可知这个程序结构没有什么问题。
十四、实验总结
这次实验成功了,感觉很有成就感,收获了很多!
每次实验都要认真做,对实验中出现的问题要认真思考,不懂的就向老师请教,当把不懂的问题弄懂了就会有很大的收获!
实验六8259A中断实验
一、实验要求
掌握用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。
二、实验目的
了解8088/86与8259之间的连接方法。
学习8088/86对8259的控制方法。
三、预备知识
8259A是Intel公司专为控制优先级中断而设计的NMOS芯片。
它集中断源优先级排队、中断源识别、中断向量提供和中断屏蔽等功能电路于一体,因而中断系统无需附任何电路,只需对8259A进行编程,就可管理8级优先中断,且中断请求方式和优先级模式等中断结构可通过编程设定或变更,中断入口地址也可由用户任意指定。
四、实验原理说明及连线
1、本实验主要用到的模块:
中断模块、单次脉冲源模块等;
2、IR6接单次脉冲的/Q端。
图3-5
五、实验内容
用单脉冲发生器的输出脉冲作为中断源,每按一次按键产生一次中断申请,中断服务程序将在实验箱的显示屏显示一个字符“R”。
六、程序框图
主程序框图见图3-6;
中断程序框图见图3-7。
图3-6图3-7
七、实验步骤
1、确认连接好线路;
2、装载并运行程序(联机时请参考程序8259.asm)。
八、仪器配置
ZY15MicInt12BB微机原理及接口实验箱一台。
九、实验现象
当中断发生时,实验箱屏幕将会显示字符R(编程时,如果要往屏幕送字符,请往端口88H送字符即可)。
十、思考题答案(请同学们务必理解后用自己的话组织作答)
写出8259的初始命令字和操作命令的区别,操作命令字的写入顺序是什么?
答案及系统说明:
对8259的编程来说,完整的操作要写初始命令字和操作命令两种命令字。
初始命令字有四个,分别是ICW1、ICW2、ICW3和ICW4,这四个命令字的作用分别是中断请求触发方式设定、中断类型号的设定、中断级连方式的设定和中断嵌套方式的设定,每个命令字有不同的特征位。
在计算机系统中,这四个命令字,都已经设置好,不需要用户再修改,我们的实验系统中也是设置好的,我们设置方式是上升沿边沿触发,我们中断类型号的设定与PC机的中断类型号的设定保持一致,8个中断号分别为8~0FH,中断优先级从8到F逐级递减。
操作命令字的作用主要是用于用户可以对8259操作的命令字,主要有三个:
OCW1、OCW2和OCW3。
作用分别是中断屏蔽的设定、中断方式(结束方式、等级编码等)的设定和读状态操作。
操作命令字的写入没有顺序,可以随时对8259的操作命令字中的一个进行修改。
初始命令字的写入有顺序,顺序依次为ICW1、ICW2、ICW3和ICW4,一定要按顺序写入。
十一、问题及解答(请同学们务必理解后用自己的话组织作答)
如果学生编写程序时,总是不能结束中断,是什么原因?
答:
在我们系统启动时,我们已经默认了中断系统的结束方式是中断非自动结束,所以,如果不能结束中断,那么有两种可能,一种是程序有问题,另一种是程序没有正常结束,正常的结束方式应该往20H地址断口送EOI指令(20H)。
不能进入中断,怎样跟踪程序?
答:
要跟踪程序,可以把中断子程序设成调用的子程序,通过指令CALL来看子程序是否起到作用了。
实验完成后,请同学们根据做实验的情况填写实验报告。
十二、试验程序
8259.ASM
UCODESEGMENT
ASSUMECS:
UCODE
BEGIN:
JMPBEGIN_
INT_SEGDW?
INT_OFFDW?
BEGIN_:
CLI
MOVAH,35H
MOVAL,0EH
INT21H
MOVINT_OFF,BX
MOVINT_SEG,ES
MOVAX,CS
ADDAX,10H
MOVDS,AX
MOVAH,25H
MOVAL,0EH
MOVDX,OFFSETUINTR
INT21H
INAL,21H
ANDAL,0BFH
MOVDX,21H
OUTDX,AL
STI
JMP$
UINTRPROCFAR
CLI
MOVDX,88H
MOVAL,'R'
OUTDX,AL
MOVAL,20H
OUT20H,AL
IRET
UINTRENDP
UCODEENDS
ENDBEGIN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 实验 报告 整理 部分