太原理工大学现代科技学院微机原理实验.docx
《太原理工大学现代科技学院微机原理实验.docx》由会员分享,可在线阅读,更多相关《太原理工大学现代科技学院微机原理实验.docx(37页珍藏版)》请在冰豆网上搜索。
太原理工大学现代科技学院微机原理实验
太原理工大学现代科技学院
微机原理及接口技术课程实验报告
专业班级信息13-1班
学号2013101269
姓名陈凯
指导教师师卫
……………………………………装………………………………………订…………………………………………线………………………………………
实验名称多位十进制数相加同组人
专业班级信息13-1班学号2013101269姓名陈凯成绩
实验一:
多位十进制数相加
1、实验目的:
学习数据传送和算数运算指令的用法。
2、实验内容:
将两个朵唯十进制数28056、47193相加,并显示加数、被加数、和。
要求两个家属均以ASCII码形式各自顺序存在DATA1和DATA2内存单元中,结果送回DATA1处(低位在前,高位在后)。
3、实验程序:
SHOWMACROB
MOVDL,B
MOVAH,02H
INT21H
ENDM
DATASEGMENT
DATA1DB33H,39H,31H,37H,34H
DATA2DB36H,35H,30H,38H,32H
DATA3DB'_',0DH,0AH,'$'
DATAENDS
STACKSEGMENTSTACK
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,OFFSETDATA2
MOVBX,05
SHOW20H
CALLDISPL
SHOW0DH
SHOW0AH
MOVSI,OFFSETDATA1
MOVBX,05
SHOW2BH
CALLDISPL
SHOW0DH
SHOW0AH
MOVCL,7
S1:
SHOW2DH
LOOPS1
SHOW0DH
SHOW0AH
MOVSI,OFFSETDATA1
MOVDI,OFFSETDATA2
CALLADDA
MOVSI,OFFSETDATA1
MOVBX,05
SHOW20H
CALLDISPL
MOVAX,4C00H
INT21H
DISPLPROCNEAR
DS1:
SHOW[SI+BX-1]
DECBX
JNZDS1
RET
DISPLENDP
ADDAPROCNEAR
MOVDX,SI
MOVBP,DI
MOVBX,05
AD1:
SUBBYTEPTR[SI+BX-1],30H
SUBBYTEPTR[DI+BX-1],30H
DECBX
JNZAD1
MOVSI,DX
MOVDI,BP
MOVCX,05
CLC
AD2:
MOVAL,[SI]
MOVBL,[DI]
ADCAL,BL
AAA
MOV[SI],AL
INCSI
INCDI
LOOPAD2
MOVSI,DX
MOVDI,BP
MOVBX,05
AD3:
ADDBYTEPTR[SI+BX-1],30H
ADDBYTEPTR[DI+BX-1],30H
DECBX
JNZAD3
RET
ADDAENDP
CODEENDS
ENDSTART
四、实验截图
下图为实验程序及其编译截图:
正确结果:
实验名称两个十进制数的乘法同组人
专业班级信息13-1班学号2013101269姓名陈凯成绩
实验二:
两个十进制数的乘法
1、实验目的:
掌握乘法指令和循环指令的用法。
2、实验内容:
实现十进制数的乘法。
被乘数(29054)和乘数(3)均以ASCII码的形式存放在内存中,乘数、被乘数、积均在屏幕上显示出来。
3、实验程序
SHOWMACROB
MOVAH,02H
MOVDL,B
INT21H
ENDM
DATASEGMENT
DATA1DB32H,39H,30H,35H,34H
DATA2DB33H
RESULTDB6DUP(00H)
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,OFFSETDATA1
MOVCL,5
SHOW20H
CALLDISPL
SHOW0DH
SHOW0AH
SHOW2AH
MOVSI,OFFSETDATA2
MOVBL,[SI]
ANDBL,00001111B
MOVCL,1
CALLDISPL
SHOW0DH
SHOW0AH
MOVCL,7
S1:
SHOW2DH
LOOPS1
SHOW0DH
SHOW0AH
MOVSI,OFFSETDATA1
MOVDI,OFFSETRESULT
MOVAX,00H
MOVCX,05
LOOP1:
MOVAL,[SI]
ANDAL,00001111B
INCSI
MULBL
AAM
ADDAH,[DI]
AAA
MOV[DI],AH
INCDI
MOV[DI],AL
LOOPLOOP1
MOVSI,OFFSETRESULT
MOVCX,06
LOP:
MOVDL,[SI]
ADDDL,30H
MOV[SI],DL
INCSI
LOOPLOP
MOVSI,OFFSETRESULT
MOVCL,6
CALLDISPL
MOVAX,4C00H
INT21H
DISPLPROCNEAR
SD1:
SHOW[SI]
INCSI
LOOPSD1
RET
DISPLENDP
CODEENDS
ENDSTART
4、实验截图
实验程序与编译:
实验运行结果:
实验名称统计数据个数程序同组人
专业班级信息13-1班学号2013101269姓名陈凯成绩
实验三:
统计数据个数
1、实验目的:
掌握多位十六进制数转换成朵唯十进制数的ASCII码的方法。
2、实验内容:
统计内存数组中大于0和小于0的元素的个数,并将统计结果分别存放在LRESULT和HResult变量中,并显示个数。
3、实验程序:
DATASEGMENT
ARYDB1,3,-1,2,6,-9,-5,7,8,1,3,8,-6,8,-9,-7,2,4,-3,-3
DB-4,7,7,8,3,1,3,6,8,5,5,6,4,5,7,-4,2,4,5,-7,5,4
DB2,5,7,8,8,8,7,6,-5,4,3,2,1,-1,2,2,3,-4,5,6,7
N=$-ARY
LRESULTDW0
HRESULTDW0
TJJGDB'STATISTICSRESULT:
',0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
SHOWMACROB
PUSHDX
PUSHAX
MOVDX,B
MOVAH,02H
INT21H
POPAX
POPDX
ENDM
XORCX,CX
MOVCX,N
LEASI,ARY
LOP:
MOVAL,[SI]
CMPAL,0
JNSPLUS
INCLRESULT
JMPCONT
PLUS:
INCHRESULT
CONT:
INCSI
LOOPLOP
LEADX,TJJG
MOVAH,09H
INT21H
SHOW'+'
MOVAX,HRESULT
CALLDISPL
SHOW0DH
SHOW0AH
SHOW'-'
MOVAX,LRESULT
CALLDISPL
MOVAX,4C00H
INT21H
DISPLPROC
PUSHDX
PUSHAX
MOVCX,10
MOVDX,00H
MOVBX,00H
DIVCX
MOVBX,DX
ADDAL,30H
DISPL1:
MOVDL,AL
MOVAH,02H
INT21H
MOVDL,BL
ADDDL,30H
MOVAH,02H
INT21H
POPAX
POPDX
RET
DISPLENDP
CODEENDS
ENDSTART
4、实验截图
实验调试编译程序:
实验运行结果:
……………………………………装………………………………………订…………………………………………线………………………………………
实验名称8255与开关电路实验同组人
专业班级信息13-1班学号2013101269姓名陈凯成绩
实验四:
8255A与开关电路的实验
1、实验目地:
(1)掌握8255A并行接口芯片的原理及编程方法;
(2)掌握读取开关状态的方法。
2、实验内容:
编写程序,通过8255A接口芯片,读取开关状态,并在PC机屏幕上显示出来。
3、线路连接:
实验中共有8个逻辑开关,8255A端口C的8位连接8个,开关向上拨时,8255A相应的端口输出高电平‘1’;开关向下拨时,响应端口输出低电平’0‘。
4、实验程序
DATASEGMENT
IOPORTEQU0D880H-280H
IO8255CEQUIOPORT+282H
IO8255TEQUIOPORT+283H
TABDB'12345678',0DH,0AH,'$'
MESSDB'PLEASEENTERANYKEYWHENREADY!
',0DH,0AH,'$'
DATAENDS
STACKSEGMENTSTACK
STADW50DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAH,09H
MOVDX,OFFSETMESS
INT21H
MOVAH,01H
INT21H
MOVDX,IO8255T
MOVAL,99H