微机原理与接口技术实验指导书1020.docx
- 文档编号:4464383
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:58
- 大小:571.78KB
微机原理与接口技术实验指导书1020.docx
《微机原理与接口技术实验指导书1020.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验指导书1020.docx(58页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术实验指导书1020
微机原理与接口技术
实验指导书
韩宇龙武梦龙编
电子信息工程系
2015年
实验要求
一.预习
认真预习实验内容和相关理论知识,编写实验内容所要求的源程序,按要求写好预习报告,无预习报告或预习不合格者不得进行实验。
二.预习报告
1.基本内容:
程序:
程序功能、程序框图及源程序清单;主要调试步骤及程序功能测试方案。
硬件:
原理线路与实际接线图;主要调试步骤与测试方案。
2.实验指导书中提到的其它内容。
三.实验
1.按规定时间到实验室,遵守实验室相关的规章制度。
2.实验过程中,不允许带电操作:
接线、更改线路和拆除线路必须先切断电源。
3.出现硬件故障立即切断电源并报告老师。
4.实验完成后,须经老师检查、签字后方可拆线。
5.将实验设备拆线、整理好并关掉计算机再离开实验室。
四.实验报告
1.使用学校专门的实验报告纸撰写报告,主体内容需要手工书写。
要求字迹工整,条理清楚,简明扼要,装订整齐,要有单独的封面页。
实验报告封面页需依次注明以下信息:
◇课程名称:
微机原理与接口技术实验报告。
◇实验序号及实验名称,如:
实验一软件基础。
◇班级、姓名、学号及实验时间和地点。
◇指导教师:
。
◇实验成绩:
。
2.基本内容
设计说明:
软件:
程序名,功能,算法说明,程序框图。
硬件:
原理线路、接口芯片工作方式及公式等说明,实际接线图。
附教师签字的源程序清单。
源程序清单需加中文注释。
调试说明:
实验中遇到的主要问题,解决方法及分析说明。
实际软、硬件测试结果说明
3.每个实验中要求的其它具体内容。
实验一软件基础
[课内实验学时:
2学时]
一.实验目的
1.学习使用CodeView调试环境。
2.学习如何建立和执行汇编语言程序。
3.学习指令代码及其分段结构与寻址方式。
4.学习数据传送指令。
5.学习宏汇编的基本语法。
二.实验仪器及设备
1.一套MASM6.11宏汇编软件。
2.一台微型计算机。
三.实验内容
1.在CodeView的Command窗口中,用A命令汇编上机调试习题1的指令,直接在显示窗口中观察各条指令的反汇编结果并作记录。
2.用A命令汇编上机调试习题2的指令,用T命令跟踪每一条指令,观察每条指令的执行情况并作记录。
3.调试上机调试习题3的程序。
提示:
操作开始前,先用N命令设置调试命令所用参数的缺省数制。
4.调试上机调试习题4的程序。
四.软件基本用法简介
1.设计说明
程序名:
DISP。
程序功能:
在屏幕上分别显示数字3和4对应的阿拉伯符号。
算法说明:
用两次02号系统功能调用,预先将‘3’和‘4’送入DL。
程序框图:
如图1所示。
源程序:
DISP:
MOVDL,33H
MOVAH,02H
INT21H
MOVDL,34H
MOVAH,02H
INT21H
调试说明:
系统功能调用指令INT21H(包括INT20H)不能用T命令跟踪,可以用G命令加上地址范围的方式执行。
2.CodeView调试程序使用介绍
(1)进入CodeView调试环境
方法一:
①.点击操作系统桌面的PWB快捷图标进入PWB主界面,在菜单File下选中Dos
Shell项进入Dos环境;
②.在目录MASM611\BIN>下键入指令:
CV*.EXE(该目录下任何一个EXE文件均可),启动CodeView,在该环境下对所调入的EXE文件进行修改与调试。
方法二:
①.从桌面的‘开始’菜单进入Dos环境,转入MASM611\BIN>目录下;
②.键入指令:
CV*.EXE,启动CodeView。
图2是CodeView的窗口调试界面的图例:
图2CodeView的窗口调试界面
(2)以下各操作命令均在CodeView调试界面的Command窗口中以命令行的方式键入,用来对EXE文件进行修改与调试。
设置基数
>n16——说明:
N为基数设置命令,用来设置调试命令所用参数的缺省数制(但N命令不会改变数据的显示方式)。
输入新的指令
>a——说明:
A为汇编命令,将用户输入的符号指令汇编为机器代码,存入指定地址
开始的内存单元。
194E:
0000movdl,33
194E:
0002movah,2
194E:
0004int21
194E:
0006movdl,34
194E:
0008movah,2
194E:
000Aint21
194E:
000Cnop
194E:
000D
连续运行前三条指令
>g6——说明:
G为运行命令,从当前CS:
IP所指的指令(即movdl,33)开始,一直执行到指定地址(即194E:
0006)。
查看前三条指令的执行结果
按F4在Dos界面下可以看到程序的执行结果,按Esc键返回调试界面
单步执行第4条指令
>t——说明:
T为跟踪命令,从当前CS:
IP所指指令开始单步执行,若遇到CALL或INT
指令(DOS系统调用INT21H和INT20H除外),则会跟踪进入相应过程或中断服务程序的内部。
T命令为顺序跟踪,改变顺序时应输入起始地址。
观察寄存器中的内容
>r——说明:
R命令用以显示和修改寄存器的值,还可以显示8个标志位的值。
如果
只显示某一个寄存器内容,则在R后面加寄存器名,例如:
>rdx
DX0034
:
单步执行第5条指令
>t
观察寄存器AH中的内容
>rah
AH02
:
连续运行至前6条指令结束(INT20返回)
>gc
查看执行结果
同样,按F4可以看到程序的执行结果,按Esc键返回调试界面。
以下是在显示窗口看到的反汇编信息——
(指令地址)(机器码)(助记符)
194E:
0000B233MOVDL,33
194E:
0002B402MOVAH,02
194E:
0004CD21INT21
194E:
0006B234MOVDL,34
194E:
0008B402MOVAH,02
194E:
000ACD21INT21
194E:
000C90NOP
194E:
000D
以下是在寄存器窗口看到的内容——
AX=0234
BX=0000
CX=0000
DX=0034
SP=0000
BP=0000
SI=0000
DI=0000
DS=193D
ES=193D
SS=194D
CS=194E
IP=000E
FL=3202
NVUPEIPL
NZNAPONC
>L——说明:
L命令使由CV*.EXE命令调入的程序重新开始执行,之前对代码或数据所做
的任何修改均将丢失。
重新键入4条指令
>a
194E:
0000movdl,33
194E:
0002movah,2
194E:
0004int21
194E:
0006nop
194E:
0007
内存单元的显示与修改
>mdcs:
0cs:
6——说明:
MD为内存显示命令,用来显示指定内存单元的值。
194E:
0000B233B402CD2190.3...!
..
>mecs:
1——说明:
ME为内存修改命令,用来设置指定内存单元的值。
194E:
0001333.36
>g6
>mdcs:
0cs:
6
194E:
0000B236B402CD2190.6...!
..
注:
对比修改前后内存单元CS:
0001中数值,可以看到已经把33H修改为36H。
3.汇编语言程序的建立与运行方法介绍
(1).进入PWB开发环境
在目录C:
\MASM611\BIN>下键入命令PWBexa4s.asm或者直接双击桌面上的‘PWB快捷方式’图标即可进入PWB集成开发环境,如图3所示:
图3PWB集成开发环境
(2).编辑、保存源文件
PWB中编辑器的基本操作与许多文本编辑器类似,例如建立新文件、保存文件、另存为、光标移动、块操作、插人删除操作、恢复操作、查找替换操作、设置编辑器的功能键和各类颜色等。
要编辑一个汇编语言源程序,首先用鼠标或Alt+F键选择File下拉菜单,然后选择New建立一个新文件或者选择Open打开一个已有的源程序。
完成编辑任务后,用File菜单的Save或SaveAS命令保存。
请注意:
保存源文件时一定要加上扩展名.ASM;指令各部分之间的间隔用制表键(Tab
)定位,这样打印的清单整齐规格。
datasegment
string1db'movethecursorbackward.'
string2db'movethecursorbackward.'
mess1db'match.',13,10,'$'
mess2db'nomatch!
',13,10,'$'
dataends
codesegment‘code’
assumecs:
code,ds:
data,es:
data
start:
movax,data
movds,ax
moves,ax
leasi,string1
leadi,string2
cld
movcx,25
repzcmpsb
jzmatch
leadx,mess2
jmpshortdisp
match:
leadx,mess1
disp:
movah,09h
int21h
movax,4c00h
int21h
codeends
endstart
(3).汇编和链接
源程序编辑完成并保存后,可以开始汇编和链接任务。
在集成环境下,程序的汇编和链接可以分别完成也可一次性完成,采用何种方式由Project菜单决定。
如果选择CompileFile选项,则只完成汇编任务。
如果没有汇编源程序,Build选项首先进行汇编,汇编结束并且没有发现任何错误时进行链接;如果源程序有错,显示所有错误位置和原因,不进行链接。
Project菜单中的NextProject,PreviousError和GotoError命令用于定位程序中的错误。
如果源程序已经汇编,则Build选项只进行目标文件的链接。
这里选择Build选项,汇编、链接成功后,弹出如下图4所示的对话框。
图4汇编链接成功后弹出的对话框
从对话框可知,程序无任何语法错误,正确生成EXE文件。
对话框最下面一行的提示作用如下:
ViewResults:
用于查看汇编/链接的结果,如果有错将提示具体的错误信息。
RunProgram:
运行程序。
DebugProgram:
直接进入CodeView调试环境。
Cancel:
为取消对话框。
Help:
获得在线帮助。
有时系统在该对话框中会出现一个关于堆栈的警告性错误,当程序使用的堆栈较小时,可以忽略该错误。
(4).运行程序
除了通过汇编/链接后弹出的对话框运行程序外,还可通过Run菜单运行程序,方法是选择Run菜单中的Execute命令或RunDosCommand命令。
运行示例程序出现如图5所示的窗口。
图5运行示例程序出现的窗口
程序运行结束后按任意键返回到PWB环境。
(5).调试
程序通过汇编和链接只说明程序中没有语法错误。
汇编程序不能发现程序设计中的错误。
实际上编写程序很难一次成功,这时就需要通过调试来发现错误,然后重新编辑(修改)、汇编、链接、执行。
反复进行以上过程,直至成功。
在CodeView下调试EXE文件的方法如实验二所示。
五.上机调试的习题
1.分别以二进制数形式和十六进制数形式写出以下指令的机器码,并在二进制数表示的机器码中标明其各个组成部分及其含义。
MOVAX,DXADDCX,[BX+8]SUB[BX+SI],SI
MOVAL,DLADDCX,BXSBB[DI],AL
2.已知从2000H:
7358H开始的4个MOVAX,2000H
存储单元的内容顺序为:
MOVDS,AX
36H85H43H21HMOVDI,7348He2000:
7358aint7
写出题中各指令的寻址方式及各指令的MOVAL,10H[DI]
执行结果。
MOVSS,[DI+10H]
LEABX,[DI]+10H
LESCX,10H+[DI]
3.已知DS=2000H,欲将2000H:
7348H与2000H:
735AH的内容互换。
写出三个不同的程序段,分别用通用数据传送指令,交换指令及堆栈操作指令完成互换操作。
提示:
题中的已知条件可用CodeView的MF命令、R命令直接写入相应的内存单元或寄存器。
4.写出下面程序段中每一条指令的执行结果,以及各程序段所实现的操作。
(1)SGWS:
MOVAX,8514H
MOVBX,3692H
MOVCH,AH
SUBAL,BL
DAS
XCHGAL,CH
SBBAL,BH
DAS
MOVAH,AL
MOVAL,CH
(2)STMU:
MOVCX,7A8FH
MOVAX,6BC5H
MOVBX,1000H
MULBX
PUSHDX
PUSHAX
MOVAX,CX
MULBX
POPCX
MOV[3000H],CX
POPCX
ADDAX,CX
MOV[3002H],AX
ADCDX,00H
MOV[3004H],DX
六.预习要求
1.熟悉CodeView调试环境和常用的调试命令。
2.预习报告:
①CPU内部寄存器的名称及其作用。
②各种寻址方式,指令代码的分段结构。
③数据传送指令。
④分析上机调试习题4的程序,说明每一段程序的算法及所实现的操作。
按实验报告要求,设计调试方案。
七.实验报告
1.分析上机调试习题1中每一条指令的字段结构与寻址方式。
例如:
89D0MOVAX,DX
1000100111010000源寄存器寻址
DWMODRR/M
字源目的目的寄存器寻址
2.分析上机调试习题2中每一条指令应该完成的操作及实际结果。
例如:
MOVAX,2000
指令操作:
立即数送入AX
执行结果:
AX=2000
3.上机调试习题3的主要内容。
①程序采用的主要算法。
②程序框图及源程序清单。
③主要调试步骤、程序功能测试方案和测试结果。
4.上机调试习题4第一个程序段
(1)填表
以下指令之后
AHALBHBLCHCLCF(标志)
SUBAL,BL
DAS
SBBAL,BH
DAS
MOVAL,CH
(2)能否省去XCHGAL,CH指令,直接用SBBCH,BH对两个高位字节相减?
(3)如果将SUBAL,BL换为SBBAL,BL,程序还应作哪些修改?
(4)能否直接用16位数相减指令?
为什么?
5.上机调试习题4第二个程序段
(1)讨论程序中进行的堆栈操作。
(2)画图表示本段程序执行后堆栈指针、堆栈区及有关存储区的内容。
实验二指令系统
[课内实验学时:
2学时]
一.实验目的
1.使用CodeView命令进行程序调试。
2.学习移位、转移、子程序调用与返回、堆栈操作指令。
3.学习状态标志与条件转移指令。
4.学习系统功能调用。
5.熟悉ASCII码表及振铃、回车、换行符的使用。
二.实验仪器及设备
1.一套MASM6.11宏汇编软件。
2.一台微型计算机。
三.实验内容
C:
\MASM611\BIN>CVexa2.exe调试EXA2.EXE程序
1.运行程序EXEA2.EXE,记录运行时的键操作与对应的屏幕显示。
2.从程序开始处运行至第一个09号系统功能调用后,记录显示的字符及DS:
0000开始的数据区的内容。
3.继续执行至第一个02号系统功能调用后,记录显示的字符。
思考:
为什么09号系统功能调用不能显示‘$’字符?
4.将001B处的指令改为MOVDL,07H,重复2、3步骤,记录程序执行情况。
5.继续执行至第一个01号系统功能调用后,键入8,记录AX的内容。
6.用T命令逐条跟踪,直至转移到0029处(MOVAH,01),记录每次比较所产生的Z标志与C标志,以及转移方向。
例如:
比较指令
Z
C
条件转移后的指令地址
:
002DCMPAL,24
NZ
NC
0031(不转移)
:
0031CMPAL,0D
NZ
NC
003A(转移)
...
7.分别键入‘X’,回车符,‘$’,重复6的步骤,并作记录。
8.继续运行程序至005B处,跟踪子程序调用、返回与堆栈操作指令,记录SP、IP及堆栈区的内容。
执行以下指令后
SP
IP
堆栈
1B40:
0059MOVAX,CX
:
CALL0069
0040
003E
005B
0069
1B3B:
3E5E00
:
0069PUSHBX
:
PUSHCX
:
PUSHDX
:
PUSHAX
:
006FCALL007A
:
0085CALL0091
:
00A0RET
:
008DCALL0091
:
00A0RET
:
0090RET
:
0072POPAX
:
0073CALL007A
:
0090RET
:
0075POPDX
:
POPCX
:
POPBX
:
RET
9.将00A1处子程序中输出的回车符改为换行符,从开始处运行程序,记录执行情况。
10.同上,将换行符改为回车符。
11.跟踪:
0080ROLDL,CL指令,记录DL和CL的变化情况。
四.EXA2.EXE程序的反汇编清单
1B40:
0000B8321BMOVAX,1B32
1B40:
00038ED8MOVDS,AX
1B40:
00058EC0MOVES,AX
1B40:
0007B83B1BMOVAX,1B3B
1B40:
000A8EDOMOVSS,AX
1B40:
000CBC4000MOVSP,0040
1B40:
000FBB0000MOVBX,0000
1B40:
0012B409MOVAH,09
1B40:
0014BA0000MOVDX,0000
1B40:
0017CD21INT21
1B40:
0019B402MOVAH,02
1B40:
001BB224MOVDL,24
1B40:
001DCD21INT21
1B40:
001FE87F00CALL00A1
1B40:
0022BE3700MOVSI,0037
1B40:
002533C9XORCX,CX
1B40:
002733DBXORBX,BX
1B40:
0029B401MOVAH,01
1B40:
002BCD21INT21
1B40:
002D3C24CMPAL,24
1B40:
002F7419JZ004A
1B40:
00313C0DCMPAL,0D
1B40:
00337505JNZ003A
1B40:
0035E86900CALL00A1
1B40:
0038EBEFJMP0029
1B40:
003A3C30CMPAL,30
1B40:
003C7204JB0042
1B40:
003E3C39CMPAL,39
1B40:
00407603JBE0045
1B40:
004241INCCX
1B40:
0043EBE4JMP0029
1B40:
004588OOMOV[BX+SI],AL
1B40:
004743INCBX
1B40:
0048EBDFJMP0029
1B40:
004AE85400CALL00A1
1B40:
004DC60024MOVBYTEPTR[BX+SI],24
1B40:
00508BD6MOVDX,SI
1B40:
0052B409MOVAH,09
1B40:
0054CD21INT21
1B40:
0056E84800CALL00A1
1B40:
00598BC1MOVAX,CX
1B40:
005BE80B00CALL0069
1B40:
005EB402MOVAH,02
1B40:
0060B248MOVDL,48
1B40:
0062CD21INT21
1B40:
0064B8004CMOVAX,4C00
1B40:
0067CD21INT21
1B40:
006953PUSHBX
1B40:
006A51PUSHCX
1B40:
006B52PUSHDX
1B40:
006C50PUSHAX
1B40:
006D8AC4MOVAL,AH
1B40:
006FE80800CALL007A
1B40:
007258POPAX
1B40:
0073E80400CALL007A
1B40:
00765APOPDX
1B40:
007759POPCX
1B40:
00785BPOPBX
1B40:
0079C3RET
1B40:
007A8AD8MOVBL,AL
1B40:
007C8AD3MOVDL,BL
1B40:
007EB104MOVCL,04
1B40:
0080D2C2ROLDL,CL
1B40:
008280E20FANDDL,0F
1B40:
0085E80900CALL0091
1B40:
00888AD3MOVDL,BL
1B40:
008A80E20FANDDL,0F
1B40:
008DE80100CALL0091
1B40:
0090C3RET
1B40:
009180C230ADDDL,30
1B40:
009480FA3ACMPDL,3A
1B40:
00977203JB009C
1B40:
009980C227ADDDL,27
1B40:
009CB402MOVAH,02
1B40:
009ECD21INT21
1B40:
00A0C3RET
1B40:
00A1B402MOVAH,02
1B40:
00A3B20DMOVD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 指导书 1020