微机原理与接口技术实验教案.docx
- 文档编号:24725763
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:40
- 大小:37.38KB
微机原理与接口技术实验教案.docx
《微机原理与接口技术实验教案.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验教案.docx(40页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术实验教案
微机原理与接口技术
实
验
讲
义
物理与电子工程学院
罗长更
显示程序实验3
数据传送实验5
运算类程序实验6
分支程序设计实验17
循环程序设计实验20
综合程序设计实验22
显示程序实验
实验目的
(1)掌握在PC机上以十六进制形式显示数据的方法。
(2)掌握部分DOS功能调用使用方法。
(3)熟悉Tdpit集成环境和调试器的使用。
实验内容及说明
一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。
本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。
实验中可使用DOS功能调用(INT21H)。
(1)显示单个字符输出
入口:
AH=02H
调用参数:
DL=输出字符
(2)显示字符串
入口:
AH=09H
调用参数:
DS:
DX=串地址,’$’为结束字符
(3)键盘输入并回显
入口:
AH=01H
返回参数:
AL=输出字符
(4)返回DOS系统
入口:
AH=4CH
调用参数:
AL=返回码
实验步骤
(1)运行Tdpit软件,选择文件菜单,点击新建,进入一个源文件编辑界面。
根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图1所示。
(2)使用编译菜单中的编译和链接对实验程序进行汇编、连接。
(3)使用编译菜单中的运行,运行程序,观察运行结果。
(4)使用编译菜单中的调试,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。
(5)更改数据区中的数据,检查程序的正确性。
参考程序清单
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;取高4位
SHRAL,4
图1
CMPAL,0AH;是否是A以上的数
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;显示字符
MOVAH,02H
INT21H
MOVAL,DS:
[DI]
ANDAL,0FH;取低4位
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
MOVDL,AL;显示字符
MOVAH,02H
INT21H
MOVAX,4C00H;返回DOS
INT21H
CODEENDS
ENDSTART
数据传送实验
实验目的
(1)熟悉Tdpit集成环境和调试器的使用。
(2)掌握与数据有关的不同寻址方式。
实验内容
本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
实验步骤
(1)运行Tdpit软件,选择文件菜单,点击新建进行实验程序的编写。
(2)使用编译菜单中的编译和连接对实验程序进行汇编、连接。
(3)使用编译菜单中的运行,运行程序,观察运行结果。
(4)使用编译菜单中的调试,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。
(5)更改数据区中的数据,考察程序的正确性。
参考程序:
DDATASEGMENT;定义源数据段
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;设置SI
MOVDI,OFFSETMSD;设置DI
MOVCX,LEN
NEXT:
MOVAL,[SI];开始传输数据
MOVES:
[DI],AL
INCSI
INCDI
DECCX
JNZNEXT
PUSHES
POPDS;将附加段寄存器指向的段值赋给数据段寄存器
MOVDX,OFFSETMSD
MOVAH,9
INT21H
MOVAX,4C00H;利用DOS功能调用返回DOS状态
INT21H
CODEENDS
ENDSTART
将程序主体部分的寄存器间接寻址方式改为相对寻址方式,则如下所示:
MOVBX,0
MOVCX,LEN
NEXT:
MOVAL,MSR[BX]
MOVES:
MSD[BX],AL
INCBX
LOOPNEXT
运算类程序实验
实验目的
(1)掌握运算类指令编程及调试方法。
(2)掌握运算类指令对各状态标志位的影响及测试方法。
实验内容及说明
80x86指令系统提供了实现加、减、乘、除运算的基本指令,可对表1所示的数据类型进行算术运算。
表1
1.二进制双精度加法运算
本实验要求计算X+Y=Z,将结果Z输出到屏幕,其中X=001565A0H,Y=0021B79EH。
实验利用累加器AX,先求低十六位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。
由于低位和可能向高位有进位,因而高位字相加语句需用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。
在80386以上微机中可以直接使用32位寄存器和32位加法指令完成本实验的功能。
2.十进制数的BCD码减法运算
本实验要求计算X-Y=Z,其中,X、Y、Z为BCD码,其中X=0400H,Y=0102H。
3.乘法运算
本实验要求实现十进制数的乘法,被乘数和乘数均以BCD码形式存放于内存中,被乘数为54320H,乘数为3H,运算结束后,将乘积在屏幕上显示。
4.用减奇数开平方运算
80x86指令系统中有乘除法指令但没有开平方指令,因此,开平方运算是通过程序来实现的。
用减奇数法可求得近似平方根,获得平方根的整数部分。
我们知道,N个自然数中的奇数之和等于N2,即:
1+3+5=9=32
1+3+5+7=16=42
1+3+5+7+9+11+13+15=64=82
若要做S的开方运算,那麽就可以从S中逐次减去自然数中的奇数1,3,5,7…,一直进行到相减数为0或不够减下一个自然数的奇数为止,然后统计减去自然数的奇数个数,它就是S的近似平方根。
本实验要求利用减奇法计算0040H的开平方值,并将运算结果显示在屏幕上。
实验步骤
(1)运行Tdpit软件,选择文件菜单进行实验程序的编写。
(2)使用编译菜单中的编译和连接对实验程序进行汇编、连接。
(3)使用编译菜单中的运行,运行程序,观察运行结果。
(4)使用编译菜单中的调试,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。
(5)更改数据区中的数据,考察程序的正确性。
参考程序
两个字节数据相加
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
MES1DB'Theresultis:
$'
XDB03H
YDB05H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAH,00H
MOVSI,OFFSETX
MOVAL,[SI]
ADDAL,[SI+01H]
ANDAL,0FH
MOVBL,AL
MOVDX,OFFSETMES1
MOVAH,09H
INT21H
MOVAX,BX
CALLSHOW
MOVAX,4C00H
INT21H
SHOWPROCNEAR
MOVAL,BL
ANDAL,0F0H;取高4位
SHRAL,4
CMPAL,0AH;是否是A以上的数
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
MOVAL,BL
ANDAL,0FH;取低4位
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
RET
ENDP
CODEENDS
ENDSTART
;A4-1.asm
;二进制双精度加法运算
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
MES1DB'Theresultis:
$'
XLDW65A0H
XHDW0015H
YLDW0B79EH
YHDW0021H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMES1
MOVAH,09H
INT21H
MOVAX,XL
ADDAX,YL
MOVBX,AX
MOVAX,XH
ADCAX,YH
PUSHBX
CALLSHWORD
POPBX
MOVAX,BX
CALLSHWORD
MOVAX,4C00H
INT21H
SHWORDPROCNEAR
MOVBL,AH
CALLSHOW
MOVBL,AL
CALLSHOW
RET
ENDP
SHOWPROCNEAR
PUSHAX
PUSHDX
MOVAL,BL
ANDAL,0F0H;取高4位
SHRAL,4
CMPAL,0AH;是否是A以上的数
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
MOVAL,BL
ANDAL,0FH;取低4位
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
POPDX
POPAX
RET
ENDP
CODEENDS
ENDSTART
;A4-2.asm
;十进制数的BCD码减法运算
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
MES1DB'Theresultis:
$'
XDW0400H
YDW0102H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAH,00H
SAHF
MOVSI,OFFSETX
MOVAL,[SI]
SBBAL,[SI+02H]
DAS
PUSHF
ANDAL,0FH
POPF
MOVBL,AL
INCSI
MOVAL,[SI]
SBBAL,[SI+02H]
DAS
PUSHF
ANDAL,0FH
POPF
MOVBH,AL
MOVDX,OFFSETMES1
MOVAH,09H
INT21H
MOVAX,BX
CALLSHWORD
MOVAX,4C00H
INT21H
SHWORDPROCNEAR
MOVBL,AH
CALLSHOW
MOVBL,AL
CALLSHOW
RET
ENDP
SHOWPROCNEAR
PUSHAX
PUSHDX
MOVAL,BL
ANDAL,0F0H;取高4位
SHRAL,4
CMPAL,0AH;是否是A以上的数
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
MOVAL,BL
ANDAL,0FH;取低4位
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
POPDX
POPAX
RET
ENDP
CODEENDS
ENDSTART
;A4-3.asm
;乘法运算
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
MES1DB'Theresultis:
$'
ERRMESDB'Errorexist!
$'
DATA1DB00H,02H,03H,04H,05H
DATA2DB03H
RESULTDB06HDUP(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETDATA2
MOVBL,[SI]
ANDBL,0FH
CMPBL,09H
JNCERROR
MOVSI,OFFSETDATA1
MOVDI,OFFSETRESULT
MOVCX,0005H
A1:
MOVAL,[SI+04H]
ANDAL,0FH
CMPAL,09H
JNCERROR
DECSI
MULBL
AAM
ADDAL,[DI+05H]
AAA
MOV[DI+05H],AL
DECDI
MOV[DI+05H],AH
LOOPA1
MOVDX,OFFSETMES1
MOVAH,09H
INT21H
MOVCX,06H
MOVSI,OFFSETRESULT
A2:
CALLSHOW
MOVDL,20H
MOVAH,02H
INT21H
INCSI
LOOPA2
MOVAX,4C00H
INT21H
ERROR:
MOVDX,OFFSETERRMES
MOVAH,09H
INT21H
MOVAX,4C00H
INT21H
SHOWPROCNEAR
MOVAL,DS:
[SI]
ANDAL,0F0H;取高4位
SHRAL,4
CMPAL,0AH;是否是A以上的数
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
MOVAL,DS:
[SI]
ANDAL,0FH;取低4位
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
RET
ENDP
CODEENDS
ENDSTART
;A4-4.asm
;用减奇法开平方运算
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DDATASEGMENT
MES1DB'Thesquarerootof$'
MES2DB'is:
$'
NUMBDW0040H
DDATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DDATA
START:
MOVAX,DDATA
MOVDS,AX
MOVDX,OFFSETMES1
MOVAH,09H
INT21H
MOVSI,OFFSETNUMB
MOVAX,[SI]
CALLSHWORD
MOVDX,OFFSETMES2
MOVAH,09H
INT21H
MOVAX,[SI]
MOVCL,00H
MOVDX,0001H
A1:
SUBAX,DX
JBA2
INCCL
ADDDX,02H
JMPA1
A2:
MOVBL,CL
CALLSHOW
MOVAX,4C00H
INT21H
SHWORDPROCNEAR
MOVBL,AH
CALLSHOW
MOVBL,AL
CALLSHOW
RET
ENDP
SHOWPROCNEAR
PUSHAX
PUSHDX
MOVAL,BL
ANDAL,0F0H;取高4位
SHRAL,4
CMPAL,0AH;是否是A以上的数
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
MOVAL,BL
ANDAL,0FH;取低4位
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
POPDX
POPAX
RET
ENDP
CODEENDS
ENDSTART
分支程序设计实验
实验目的
掌握分支程序的设计方法。
实验内容及说明
程序有顺序、循环、分支和子程序四种结构形式,分支结构的示意图如图1所示。
本实验要求通过求无符号字节序列中的最大值和最小值来反映分支程序的结构形式。
图1图2
实验可以使用BH,BL作为暂存现行的最大值和最小值,且在程序的初始,将BH和BL初始化为首字节的内容,然后进入循环操作。
在循环操作中,依次从字节序列中逐个取出一个字节的内容与BH,BL进行比较,若取出的字节内容比BH的内容大或比BL中的内容小,则修改之。
当循环结束操作时,将BH,BL分别送屏幕显示。
参考实验流程如图2所示。
实验步骤
(1)运行Tdpit软件,选择文件菜单编写实验程序;提供8字节的数据:
0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H。
(2)使用编译菜单中的编译和连接对实验程序进行汇编、连接。
(3)使用编译菜单中的运行,运行程序,观察运行结果。
(4)更改数据区中的数据,考察程序的正确性。
参考程序
;A5.asm
;分支程序设计实验
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DDATASEGMENT
MES1DB'Theleastnumberis:
$'
MES2DB0AH,0DH,'Thelargestnumberis:
$'
NUMBDB0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H
DDATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DDATA
START:
MOVAX,DDATA
MOVDS,AX
MOVSI,OFFSETNUMB
MOVCX,0008H
JCXZA4
MOVBH,[SI]
MOVBL,BH
A1:
LODSB;AL=DS:
[SI],SI=SI+1
CMPAL,BH
JBEA2
MOVBH,AL
JMPA3
A2:
CMPAL,BL
JAEA3
MOVBL,AL
A3:
LOOPA1
A4:
MOVDX,OFFSETMES1;showmes1
MOVAH,09H
INT21H
MOVAL,BL;showtheleastnumber
ANDAL,0F0H;getthehighest4bits
SHRAL,4
CMPAL,0AH
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
MOVAL,BL
ANDAL,0FH;getthelowest4bits
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
MOVDX,OFFSETMES2;showmes2
MOVAH,09H
INT21H
MOVAL,BH;showthelargestnumber
ANDAL,0F0H;getthehighest4bits
SHRAL,4
CMPAL,0AH
JBC22
ADDAL,07H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 教案