微机原理与接口技术实验指导书.docx
《微机原理与接口技术实验指导书.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验指导书.docx(22页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术实验指导书
《微机原理与接口技术》
实验指导书
主编教师:
授课班级:
目录
实验一顺序结构程序实验4
【实验目的】4
【实验重点及难点】4
【实验环境】4
【实验内容】4
实验二分支结构程序实验6
【实验目的】6
【实验重点及难点】6
【实验环境】6
【实验内容】6
实验三单重循环结构程序实验8
【实验目的】8
【实验重点及难点】8
【实验环境】8
【实验内容】8
实验四多重循环结构程序实验10
【实验目的】10
【实验重点及难点】10
【实验环境】10
【实验内容】10
实验五子程序实验
(一)12
【实验目的】12
【实验重点及难点】12
【实验环境】12
【实验内容】12
实验六子程序实验
(二)14
【实验目的】14
【实验重点及难点】14
【实验环境】14
【实验内容】14
实验七字符处理程序实验
(一)17
【实验目的】17
【实验重点及难点】17
【实验环境】17
【实验内容】17
实验八字符处理程序实验
(二)19
【实验目的】19
【实验重点及难点】19
【实验环境】19
【实验内容】19
实验一顺序结构程序实验
【实验目的】
1、熟悉MasmforWindows集成实验环境软件。
2、熟悉DEBUG有关命令的使用方法。
3、通过实际操作,掌握顺序结构程序的设计方法。
4、通过实际操作,熟悉利用DEBUG修改参数、检查结果的方法。
5、通过实际操作,熟悉汇编语言源程序的编辑、汇编、连接及调试过程。
【实验重点及难点】
1、DEBUG有关命令的使用方法。
2、顺序结构程序的设计方式。
3、利用MasmforWindows集成实验环境软件运行简单的程序段。
【实验环境】
Windowxp操作系统,MasmforWindows集成实验环境。
【实验内容】
(一)、实验步骤
1、打开MasmforWindows集成实验环境软件。
2、新建一个ASM文件,编写一个求平均值程序,假设两个数分别存在X单元和Y单元中,求得的平均值存放在Z单元中。
3、保存后对其进行汇编及连接,产生.EXE文件。
4、用DEBUG对.EXE文件进行调试运行。
5、学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
6、运行完毕,关闭MasmforWindows集成实验环境软件。
(二)、参考程序清单
DATASEGMENT
XDB80H
YDB16H
ZDB?
DATAENDS
STACK1SEGMENT
DW20HDUP(0)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK1
START:
MOVAX,DATA
MOVDS,AX
MOVAL,X
ADDAL,Y
MOVAH,00H
MOVBL,02H
DIVBL
MOVZ,AL
CODEENDS
ENDSTART
实验二分支结构程序实验
【实验目的】
1、通过实际操作,掌握分支程序的设计方法。
2、通过实际操作,掌握利用DEBUG修改参数、检查结果的方法。
3、通过实际操作,掌握汇编语言源程序的编辑、汇编、连接及调试过程。
【实验重点及难点】
1、分支程序的设计方法。
2、汇编语言的指令语句和伪指令语句的格式。
3、修改程序参数,检查结果的操作方法。
【实验环境】
Windowxp操作系统,MasmforWindows集成实验环境。
【实验内容】
(一)、实验步骤
1、打开MasmforWindows集成实验环境软件。
2、新建一个ASM文件,编写一个分支结构程序,假设存储器中有一字符串首址为BUFFER,字符串长度N(小于256),要求分别计算出其中数字‘0’~‘9’、字母‘A’~‘Z’和其他字符的个数,并分别将它们存放到字符串下面的三个单元中。
3、保存后对其进行汇编及连接,产生.EXE文件。
4、用DEBUG对.EXE文件进行调试运行。
5、运行完毕,关闭MasmforWindows集成实验环境软件。
(二)、参考程序清单
DATASEGMENT
BUFFERDB10
DB01H,35H,38H,47H,52H,59H,60H,63H,70H,76H
NUMDB3DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVCX,10
MOVDX,0
MOVSI,OFFSETBUFFER
LP:
LODSB
CMPAL,30H
JLNEXT
CMPAL,39H
JGABC
INCDH
JMPNEXT
ABC:
CMPAL,41H
JLNEXT
CMPAL,5AH
JGNEXT
INCDL
NEXT:
LOOPLP
MOV[SI],DH
MOV[SI+1],DL
MOVAL,10
SUBAL,DH
SUBAL,DL
MOV[SI+2],AL
CODEENDS
ENDSTART
实验三单重循环结构程序实验
【实验目的】
1、通过实际操作,掌握单重循环结构程序的设计方法。
2、通过实际操作,掌握循环结构程序的组成。
3、通过实际操作,进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。
【实验重点及难点】
1、用计数器控制循环的方法。
2、用条件控制循环的方法。
3、用逻辑尺控制循环的方法。
【实验环境】
Windowxp操作系统,MasmforWindows集成实验环境。
【实验内容】
(一)、实验步骤
1、打开MasmforWindows集成实验环境软件。
2、新建一个ASM文件,编写一个单重循环结构程序,求自然数之和,直到累加和大于1000为止,统计被加的自然数的个数,并把统计的个数送入COUNT单元,累加和送TOTAL单元。
3、保存后对其进行汇编及连接,产生.EXE文件。
4、用DEBUG对.EXE文件进行调试运行。
5、运行完毕,关闭MasmforWindows集成实验环境软件。
(二)、参考程序清单
DATASEGMENT
COUNTDW?
TOTALDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVCX,0
MOVAX,0
MOVBX,0
LOOP1:
INCBX
ADDAX,BX
INCCX
CMPAX,1000
JLELOOP1
SUBCX,1
MOVCOUNT,CX
MOVTOTAL,AX
CODEENDS
ENDSTART
实验四多重循环结构程序实验
【实验目的】
1、通过实际操作,掌握多重循环结构程序的设计方法。
2、通过实际操作,掌握循环嵌套的特点。
3、通过实际操作,学会针对不同的问题,选用不同的组织循环的方法。
【实验重点及难点】
1、循环嵌套的特点,内外循环的跳转。
2、如何避免死循环的产生。
3、LOOP语句构成的循环结构特点。
【实验环境】
Windowxp操作系统,MasmforWindows集成实验环境。
【实验内容】
(一)、实验步骤
1、打开MasmforWindows集成实验环境软件。
2、新建一个ASM文件,编写一个多重循环结构程序,编制一个程序把存储器中一组字数据按照从小到大的次序排列。
3、保存后对其进行汇编及连接,产生.EXE文件。
4、用DEBUG对.EXE文件进行调试运行。
5、运行完毕,关闭MasmforWindows集成实验环境软件。
(二)、参考程序清单
DATASEGMENT
BUFFERDW7,37,8600,0A78H,3412H,1257H,76H
DATAENDS
STACK1SEGMENT
SADB100DUP(?
)
TOPLABELWORD
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK1
MOVSS,AX
MOVSP,OFFSETTOP
MOVBX,0
MOVCX,BUFFER[BX]
DECCX
L1:
MOVDX,CX
L2:
ADDBX,2
MOVAX,BUFFER[BX]
CMPAX,BUFFER[BX+2]
JBECOUNTI
XCHGAX,BUFFER[BX+2]
MOVBUFFER[BX],AX
COUNTI:
LOOPL2
MOVCX,DX
MOVBX,0
LOOPL1
STOP:
HLT
CODEENDS
ENDSTART
实验五子程序实验
(一)
【实验目的】
1、通过实际操作,掌握主程序与子程序之间的调用关系及调用方法。
2、通过实际操作,掌握子程序调用过程中近程调用与嵌套调用。
3、通过实际操作,掌握通过堆栈转送参数的方法。
【实验重点及难点】
1、子程序嵌套方法的使用。
2、用堆栈传送参数的过程及其具体方法。
3、子程序设计的基本方法。
【实验环境】
Windowxp操作系统,MasmforWindows集成实验环境。
【实验内容】
(一)、实验步骤
1、打开MasmforWindows集成实验环境软件。
2、新建一个ASM文件,编写一个子程序的近程调用程序,将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCII码,在屏幕上显示出来。
要求码型转换通过子程序HEXAC实现,在转换过程中,通过子程序DISP实现显示。
3、保存后对其进行汇编及连接,产生.EXE文件。
4、用DEBUG对.EXE文件进行调试运行。
5、运行完毕,关闭MasmforWindows集成实验环境软件。
(二)、参考程序清单
DATASEGMENT
BUFDB0ABH,0CDH,0DEH,01H,02H,03H,3AH,4BH,5CH,6FH
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVCX,10
LEABX,BUF
AGAIN:
MOVAL,[BX]
CALLHEXASC
INCBX
LOOPAGAIN
MOVAH,4CH
INT21H
HEXASCPROCNEAR
MOVDL,AL
PUSHCX
MOVCL,4
SHRDL,CL
POPCX
CALLDISP;显示高位HEX数
MOVDL,AL
ANDDL,0FH
CALLDISP
RET
HEXASCENDP
DISPPROCNEAR
CMPDL,9
JBENEXT
ADDDL,7
NEXT:
ADDDL,30H
MOVAH,2
INT21H;显示
RET
DISPENDP
CODEENDS
ENDSTART
实验六子程序实验
(二)
【实验目的】
1、通过实际操作,进一步掌握主程序与子程序之间的调用关系及调用方法。
2、通过实际操作,掌握子程序调用过程中近程调用与远程调用的区别。
3、通过实际操作,进一步掌握通过堆栈转送参数的方法。
【实验重点及难点】
1、远程调用与近程调用的区别,在用DEBUG有关命令观察时,执行过程有何不同。
2、用堆栈传送参数的过程及其具体方法。
3、子程序嵌套方法的使用。
【实验环境】
Windowxp操作系统,MasmforWindows集成实验环境。
【实验内容】
(一)、实验步骤
1、打开MasmforWindows集成实验环境软件。
2、新建一个ASM文件,编写一个子程序的远程调用程序。
主程序要求从键盘接收若干个字符,然后用远调用的方法,调用子程序统计字符串中字符‘b’的个数;子程序的参数是字符串的首地址TABLE,字符串长度N及字符‘b’,子程序返回字符‘b’的个数,参数传送采用堆栈实现,主程序在子程序返回后,显示字符‘b’及其个数(设为一位十六进制数。
3、保存后对其进行汇编及连接,产生.EXE文件。
4、用DEBUG对.EXE文件进行调试运行。
5、运行完毕,关闭MasmforWindows集成实验环境软件。
(二)、参考程序清单
DATASEGMENT
CHARDB'b'
BUFDB50H,?
50HDUP(?
)
CRLFDB0DH,0AH,'$'
DATAENDS
MCODESEGMENT
ASSUMECS:
MCODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEADX,CRLF
MOVAH,9
INT21H
LEASI,BUF
MOVCL,[SI+1]
MOVCH,0;CX中为字符串长度
INCSI
INCSI;SI指向串首址TABLE
MOVAL,CHAR
MOVAH,0;AX中为待查字符
PUSHSI
PUSHCX
PUSHAX;参数送堆栈
CALLCHECK
POPAX;统计个数在AL中
MOVDL,CHAR
MOVAH,2
INT21H
POPAX
MOVDL,AL
ANDDL,0FH
CMPDL,9
JBENEXT
ADDDL,7
NEXT:
ADDDL,30H
MOVAH,2
INT21H;显示统计个数
MOVAH,4CH
INT21H
MCODEENDS
SCODESEGMENT
ASSUMECS:
SCODE
CHECKPROCFAR
PUSHBP
MOVBP,SP
MOVSI,[BP+10]
MOVCX,[BP+8]
MOVAX,[BP+6]
XORAH,AH
AGAIN:
CMPAL,[SI]
JNENEXT1
INCAH
NEXT1:
INCSI
LOOPAGAIN
MOVAL,AH
MOV[BP+10],AX
POPBP
RET4
CHECKENDP
SCODEENDS
ENDSTART
实验七字符处理程序实验
(一)
【实验目的】
1、通过实际操作,熟悉串操作指令的功能与应用。
2、通过实际操作,掌握串操作指令的寻址方式及使用方法。
3、通过实际操作,熟悉字符处理的方法和字符处理程序的设计。
【实验重点及难点】
1、字符处理的方法和字符处理程序的设计的方法。
2、串操作的指令及其寻址方式的特点,串操作指令的使用。
【实验环境】
Windowxp操作系统,MasmforWindows集成实验环境。
【实验内容】
(一)、实验步骤
1、打开MasmforWindows集成实验环境软件。
2、新建一个ASM文件,编写一个字符串统计程序。
自STRN开始的存储区中,有一个字符串,统计其中含有小写字母的个数,将统计结果以两位十进制数显示在屏幕上。
3、保存后对其进行汇编及连接,产生.EXE文件。
4、用DEBUG对.EXE文件进行调试运行。
5、运行完毕,关闭MasmforWindows集成实验环境软件
(二)、参考程序清单
DATASEGMENT
STRNDB80DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADI,STRN
MOVCL,0
AGAIN:
MOVAH,1
INT21H
CMPAL,0DH
JZDONE
MOV[DI],AL
INCDI
INCCL
JMPAGAIN
DONE:
LEASI,STRN
MOVCH,0
MOVBL,0
CLD
CYCLE:
LODSB
CMPAL,61H
JBNEXT
CMPAL,7AH
JANEXT
INCBL
NEXT:
LOOPCYCLE
MOVAL,BL
MOVAH,0
MOVCL,10
DIVCL;十位数在AL中,个位数在AH中
PUSHAX;回车换行
MOVDL,0DH
MOVAH,2
INT21H
MOVDL,0AH
MOVAH,2
INT21H
POPAX
XCHGAH,AL;以下显示两位十进制数
MOVBX,AX
MOVDL,BH
ADDDL,30H
MOVAH,2
INT21H
MOVDL,BL
ADDDL,30H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验八字符处理程序实验
(二)
【实验目的】
1、通过实际操作,进一步熟悉串操作指令的功能与应用。
2、通过实际操作,进一步掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序。
3、通过实际操作,掌握字符处理的方法和字符处理程序的设计。
【实验重点及难点】
1、字符处理的方法和字符处理程序的设计的方法。
2、串操作的指令及其寻址方式的特点,串操作指令的使用。
3、总结字符串处理的编程方法,提出改进和完善此类程序的设计方案。
【实验环境】
Windowxp操作系统,MasmforWindows集成实验环境。
【实验内容】
(一)、实验步骤
1、打开MasmforWindows集成实验环境软件。
2、新建一个ASM文件,编写一个字符串程序。
在给定的字符串中,删除重复的字符,其余的字符向前递补。
3、保存后对其进行汇编及连接,产生.EXE文件。
4、用DEBUG对.EXE文件进行调试运行。
5、运行完毕,关闭MasmforWindows集成实验环境软件
(二)、参考程序清单
DATASEGMENT
STRNDB80,?
80DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,STRN
MOVAH,0AH;0A号调用,从键盘输入字符串。
INT21H
PUSHAX
MOVDL,0AH
MOVAH,2
INT21H
MOVDL,0DH;回车换行
MOVAH,2
INT21H
POPAX
LEABX,STRN+2
LEASI,STRN+3
LEADI,STRN+3
MOVCH,0
MOVCL,BYTEPTR[STRN+1]
DECCX
S2:
PUSHCX
MOVCX,DI
SUBCX,BX
S1:
MOVAL,[SI]
CMPAL,[BX]
JENEXTCHAR
INCBX
LOOPS1
MOV[DI],AL
INCDI
NEXTCHAR:
LEABX,STRN+2
INCSI
POPCX
LOOPS2
MOVBYTEPTR[DI],'$';显示个数
LEADX,STRN+2
MOVAH,09
INT21H
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART