微机原理与接口技术实验7讲解.docx

上传人:b****3 文档编号:27294524 上传时间:2023-06-28 格式:DOCX 页数:68 大小:540.61KB
下载 相关 举报
微机原理与接口技术实验7讲解.docx_第1页
第1页 / 共68页
微机原理与接口技术实验7讲解.docx_第2页
第2页 / 共68页
微机原理与接口技术实验7讲解.docx_第3页
第3页 / 共68页
微机原理与接口技术实验7讲解.docx_第4页
第4页 / 共68页
微机原理与接口技术实验7讲解.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术实验7讲解.docx

《微机原理与接口技术实验7讲解.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验7讲解.docx(68页珍藏版)》请在冰豆网上搜索。

微机原理与接口技术实验7讲解.docx

微机原理与接口技术实验7讲解

 

微机原理与接口技术

实验指导书

韩宇龙武梦龙编

 

电子信息工程系

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:

00A3B20DMOVDL,0D

1B40

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1