微机原理实验.docx
- 文档编号:4730702
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:50
- 大小:612.36KB
微机原理实验.docx
《微机原理实验.docx》由会员分享,可在线阅读,更多相关《微机原理实验.docx(50页珍藏版)》请在冰豆网上搜索。
微机原理实验
微型计算机原理实验报告
学号40953055
姓名海米提。
热合木江
班级测控0902班
实验一显示程序实验
一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。
本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。
实验中可使用DOS功能调用(INT21H)。
流程图
2.试验程序
DATASEGMENT
MESDB'Showaashex:
',0AH,0DH,'$'
SDDB'a'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMES
MOVAH,09H
INT21H
MOVDI,OFFSETSD
MOVAL,DS:
[DI]
ANDAL,0F0H
SHRAL,4
CMPAL,0AH
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL
MOVAH,02H
INT21H
MOVAL,DS:
[DI]
ANDAL,0FH
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
MOVDL,AL
MOVAH,02H
INT21H
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
实验二数据传送实验
三、实验内容
将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上
1.试验程序
DATASEGMENT
MSRDB"HELLO,WORLD!
$"
LENEQU$-MSR
DDATAENDS
EXDASEGMENT
MSDDBLENDUP(?
)
EXDAENDS
MYSTACKSEGMENTSTACK
DW20DUP(?
)
MYSTACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DDATA,ES:
EXDA
START:
MOVAX,DDATA
MOVDS,AX
MOVAX,EXDA
MOVES,AX
MOVSI,OFFSETMSR
MOVDI,OFFSETMSD
MOVCX,LEN
NEXT:
MOVAL,[SI]
MOVES:
[DI],AL
INCSI
INCDI
DECCX
JNZNEXT
PUSHES
POPDS
MOVDX,OFFSETMSD
MOVAH,9
INT21H
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
MOVBX,0
MOVCX,LEN
NEXT:
MOVAL,MSR[BX]
MOVES:
MSD[BX],AL
INCBX
LOOPNEXT
2.实验结果
实验三数码转换程序实验
1.将ASCII码表示的十进制数转换为二进制数
1.流程图
2.试验程序
DATASSEGMENT
NUMBERDB'00012'
DATASENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
MOVCX,4
MOVSI,OFFSETNUMBER
MOVAL,[SI]
SUBAL,30H
MOVAH,00H
MOVBL,10
L1:
MULBL
ADDAL,[SI+1]
SUBAL,30H
INCSI
DECCX
JNZL1
MOVCX,8
MOVBL,AL
NEXT:
SHLBL,1
JCONE
MOVDL,30H
JMPEXIT
ONE:
MOVDL,31H
EXIT:
MOVAH,02H
INT21H
DECCX
JNZNEXT
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.实验结果
2.将十进制数的ASCII码转换为BCD码
本实验要求将键盘输入的一个五位十进制数54321的ASCII码存放入数据区中,转换为BCD码后,并将转换结果按位分别显示于屏幕上。
若输入的不是十进制数的ASCII码,则输出“FF”。
提示:
一字节ASCII码取其低四位即变为BCD码
1.实验流程图
2.实验程序
DATASSEGMENT
BUFDB6
DB?
DB6DUP(?
)
BUFEDB'FF$'
DATASENDS
CODESEGMENT
ASSUMEDS:
DATAS,CS:
CODE
START:
MOVAX,DATAS
MOVDS,AX
MOVDX,OFFSETBUF
MOVAH,10
INT21H
MOVCH,5
MOVSI,DX
L2:
MOVBL,[SI+2]
INCSI
CMPBL,39H
JAL1
SUBBL,30H
ANDBL,0FH
MOVDH,4
MOVCL,4
;SHLAL,CL
ROLBL,CL
NEXT:
SHLBL,1
JCONE
MOVDL,30H
JMPEXIT
ONE:
MOVDL,31H
EXIT:
MOVAH,2
INT21H
DECDH
JNZNEXT
DECCH
JNZL2
JMPL3
L1:
MOVDX,OFFSETBUFE
MOVAH,9
INT21H
L3:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.实验结果
3.将十六进制数的ASCII码转换为十进制数
十六位二进制数的值域为0-65535,最大可转换为五位十进制数。
五位十进制数可表示为:
ND=D4×104+D3×103+D2×102+D1×10+D0
因此,将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1-D4,并将它们转化为ASCII码。
本实验要求将缓冲区中存放的000CH的ASCII码转换成十进制数,并将转结果显示在屏幕
1.实验流程图
2.实验程序
DATASEGMENT
BUFDB5
DB?
DB5DUP(?
)
HEXDB4DUP(?
)
DECIDB5DUP(0),'$'
S1DB'16JINZHI:
$'
S2DB0AH,0DH,'10JINZHI:
$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,S1
MOVAH,9
INT21H
LEADX,BUF
MOVAH,10
INT21H
MOVSI,2
MOVDI,0
CHECK:
MOVAL,[SI][BUF]
CMPAL,40H
JSNUM
CMPAL,47H
JSCAPITAL
SUBAL,57H
JMPSTORE
NUM:
SUBAL,30H
JMPSTORE
CAPITAL:
SUBAL,37H
JMPSTORE
STORE:
MOVHEX[DI],AL
INCDI
INCSI
CMPDI,4
JNZCHECK
LEADX,S2
MOVAH,9
INT21H
MOVAX,WORDPTRHEX
SHLAL,4
ADDAH,AL
MOVCH,AH
MOVAX,WORDPTR2[HEX]
SHLAL,4
ADDAL,AH
MOVAH,CH
MOVSI,5
MOVBX,10
MOVDX,0
CMPAX,0
JNSCONV
NEGAX
PUSHAX
PUSHDX
MOVDL,2DH
MOVAH,2
INT21H
POPDX
POPAX
CONV:
DECSI
DIVBX
ADDDX,30H
MOVDECI[SI],DL
XORDX,DX
CMPAX,0
JNZCONV
LEADX,DECI
MOVAH,9
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.实验结果
4.BCD码转换为二进制码
本实验要求将四个二位十进制数的BCD码存放在某一内存单元中,转换出的二进制数码存入其后的内存单元中,转换结束,送屏幕显示。
1.实验流程图
2.实验程序
DATASEGMENT
DASCDB3
DB?
DB3DUP(?
)
S1DB0AH,0AH,0DH,'10JINZHIMA:
$'
S2DB0AH,0DH,'BCDMA:
$'
S3DB0AH,0DH,'2JINZHIMA:
$'
STODB8DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDI,0
MOVSI,4
LOOPER:
CALLWHOLE
DECSI
JNZLOOPER
JMPEXIT
WHOLE:
LEADX,S1
MOVAH,9
INT21H
LEADX,DASC
MOVAH,10
INT21H
LEADX,S2
MOVAH,9
INT21H
MOVAX,WORDPTR2[DASC]
SUBAX,3030H
SHLAL,4
ADDAL,AH
MOV[DI][STO],AL
MOVCH,2
MOVCL,4
PRE1:
MOVDX,30H
ROLAL,1
JNCDISP1
ADDDX,01H
DISP1:
PUSHAX
MOVAH,02
INT21H
POPAX
DECCL
JNZPRE1
PUSHAX
MOVDL,20H
MOVAH,2
INT21H
POPAX
DECCH
MOVCL,4
JNZPRE1
LEADX,S3
MOVAH,9
INT21H
MOVAL,[DI][STO]
MOVBL,AL
ANDBL,0FH
SHRAL,4
MOVCL,10
MULCL
ADDAL,BL
INCDI
MOV[DI][STO],AL
INCDI
MOVCX,8
PRE2:
MOVDX,30H
ROLAL,1
JNCDISP2
ADDDX,01H
DISP2:
PUSHAX
MOVAH,02
INT21H
POPAX
LOOPPRE2
RET
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验四运算类程序实验
1.二进制双精度加法运算
本实验要求计算x+y=z,将结果z输出到屏幕,其中x=001565a0h,y=0021b79eh.
1.实验流程图
2.实验程序
DATASEGMENT
XDD421C65A0H
YDD3C41B69BH
SDB'X+Y=$'
SUMDB4DUP(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,WORDPTRX
MOVBX,WORDPTRY
ADDAX,BX
MOVWORDPTRSUM,AX
MOVAX,WORDPTR2[X]
MOVBX,WORDPTR2[Y]
ADCAX,BX
MOVWORDPTR2[SUM],AX
LEADX,S
MOVAH,9
INT21H
MOVCX,4
MOVSI,3
CHECK:
MOVAL,SUM[SI]
MOVAH,AL
SHRAL,4
CMPAL,0AH
JSDISP1
ADDAL,07H
DISP1:
ADDAL,30H
MOVDL,AL
PUSHAX
MOVAH,02H
INT21H
POPAX
ANDAH,0FH
CMPAH,0AH
JSDISP2
ADDAH,07H
DISP2:
ADDAH,30H
MOVDL,AH
MOVAH,02H
INT21H
DECSI
LOOPCHECK
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.实验结果
(2)减法程序
1.实验流程图
2.实验程序
DATASEGMENT
XDW0400H
YDW0102H
SDB'Z=X-Y=$'
ZDW2DUP(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,S
MOVAH,9
INT21H
MOVAX,WORDPTRX
MOVBX,WORDPTRY
SUBAL,BL
AAS
SUBAH,BH
AAS
MOVZ,AX
ADDAX,3030H
MOVBX,AX
MOVDL,30H
MOVAH,2
INT21H
MOVDL,BH
MOVAH,2
INT21H
MOVDL,30H
MOVAH,2
INT21H
MOVDL,BL
MOVAH,2
INT21H
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.实验结果
实验五分支程序设计实验
实验内容:
实验可以使用BH,BL作为暂存现行的最大值和最小值,且在程序的初始,将BH和BL初始化为首字节的内容,然后进入循环操作。
在循环操作中,依次从字节序列中逐个取出一个字节的内容与BH,BL进行比较,若取出的字节内容比BH的内容大或比BL中的内容小,则修改之。
当循环结束操作时,将BH,BL分别送屏幕显示。
1.实验流程图
2.实验程序
DATASEGMENT
BUFDB'Themaxnumber:
$'
CUFDB0AH,0DH,'Themininumber:
$'
DUFDB0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETBUF
MOVAH,9
INT21H
MOVSI,OFFSETDUF
MOVCH,7
MOVBH,[SI]
MOVBL,[SI]
L1:
INCSI
MOVAL,[SI]
CMPAL,BH
JBL2
MOVBH,AL
L2:
CMPAL,BL
JAL3
MOVBL,AL
L3:
DECCH
JNZL1
;MOVBH,0B9H
XIANSHI:
MOVAL,BH;显示BH和BL
MOVCL,4
SHRAL,CL
CMPAL,0AH
JBC1
ADDAL,07H
C1:
ADDAL,30H
MOVDL,AL
MOVAH,2
INT21H
MOVAL,BH
ANDAL,0FH
CMPAL,0AH
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL
MOVAH,2
INT21H
MOVDX,OFFSETCUF
MOVAH,9
INT21H
;MOVBL,0B9H
MOVAL,BL
MOVCL,4
SHRAL,CL
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
MOVDL,AL
MOVAH,2
INT21H
MOVAL,BL
ANDAL,0FH
CMPAL,0AH
JBC4
ADDAL,07H
C4:
ADDAL,30H
MOVDL,AL
MOVAH,2
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.实验结果
实验六循环程序设计实验
实验内容:
本实验要求通过求某数据区内负数的个数来表现循环程序的结构形式。
要求实验程序在数据区中存放一组数据,为统计负数的个数,逐个判断区内的数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得到区内所包含负数的个数
1.实验流程图
2.实验程序
DATASSEGMENT
BUFDB'Thenumberofnegtive:
$'
CUFDB12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
MOVDX,OFFSETBUF
MOVAH,9
INT21H
MOVBL,0
MOVCX,10
LEASI,CUF
L2:
MOVAL,[SI]
INCSI
ANDAL,80H
JZL1
INCBL
L1:
DECCX
JNZL2
ADDBL,30H
MOVDL,BL
MOVAH,2
INT21H
MOVAX,4C00H
INT21H
CODESENDS
ENDSTART
3.实验结果
接口实验
实验一8259中断控制器应用实验
一、实验目的
1.学习可编程中断控制器8259的工作原理。
2.掌握可编程中断控制器8259的应用编程方法。
二、实验内容
1.单中断实验。
利用系统总线上中断请求信号INTR,设计一个单中断应用。
使用单次脉冲模拟中断产生。
编写中断处理程序,在显示器屏幕上显示一个字符。
实验步骤如下:
①实验接线图如图2-1所示,按图接线。
②运行Tdpit集成操作软件,调用程序代码(T8259-1.ASM),填写程序代码中的空缺处,编译、链接。
(程序源码路径:
C:
\TangDu\PitPP\ASM\)
③使用运行命令运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“9”,说明响应了中断。
2.扩展中断源查询方式应用实验。
利用实验平台上8259控制器对系统总线上的中断线INTR进行扩展。
编写程序对8259控制器的IR0和IRI中断请求进行处理。
实验步骤如下:
①实验接线图如图2-3所示,按图接线。
②运行Tdpit集成操作软件,调用程序代码(T8259-2.ASM),填写程序代码中的空缺处,编译、链接。
(程序源码路径:
C:
\TangDu\PitPP\ASM\)
③使用运行命令运行程序,按动KK1+、KK2+按键,观察中断是否产生。
三、实验所用仪表及设备
1.PC机一台。
2.TD-PIT++实验系统一套。
四.实验代码
1.单中断实验。
INTR_IVADDEQU01C8H;INTR对应的中断矢量地址
INTR_OCW1EQU0A1H;INTR对应PC机内部8259的OCW1地址
INTR_OCW2EQU0A0H;INTR对应PC机内部8259的OCW2地址
INTR_IMEQU0FBH;INTR对应的中断屏蔽字
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
MESDB'Pressanykeytoexit!
',0AH,0DH,0AH,0DH,'$'
CS_BAKDW?
;保存INTR原中断处理程序入口段地址的变量
IP_BAKDW?
;保存INTR原中断处理程序入口偏移地址的变量
IM_BAKDB?
;保存INTR原中断屏蔽字的变量
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMES;显示退出提示
MOVAH,09H
INT21H
CLI
MOVAX,0000H;替换INTR的中断矢量
MOVES,AX
MOVDI,INTR_IVADD
MOVAX,ES:
[DI]
MOVIP_BAK,AX;保存INTR原中断处理程序入口偏移地址
MOVAX,OFFSETMYISR
MOVES:
[DI],AX;设置当前中断处理程序入口偏移地址
ADDDI,2
MOVAX,ES:
[DI]
MOVCS_BAK,AX;保存INTR原中断处理程序入口段地址
MOVAX,SEGMYISR
MOVES:
[DI],AX;设置当前中断处理程序入口段地址
MOVDX,INTR_OCW1;设置中断屏蔽寄存器,打开INTR屏蔽位
INAL,DX
MOVIM_BAK,AL;保存INTR原中断屏蔽字
ANDAL,INTR_IM
OUTDX,AL
STI
WAIT1:
MOVAH,1;判断是否有按键按下
INT16H
JZWAIT1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验