微机原理与接口技术实验一二含实验要求.docx

上传人:b****5 文档编号:6477816 上传时间:2023-01-06 格式:DOCX 页数:19 大小:105.53KB
下载 相关 举报
微机原理与接口技术实验一二含实验要求.docx_第1页
第1页 / 共19页
微机原理与接口技术实验一二含实验要求.docx_第2页
第2页 / 共19页
微机原理与接口技术实验一二含实验要求.docx_第3页
第3页 / 共19页
微机原理与接口技术实验一二含实验要求.docx_第4页
第4页 / 共19页
微机原理与接口技术实验一二含实验要求.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术实验一二含实验要求.docx

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

微机原理与接口技术实验一二含实验要求.docx

微机原理与接口技术实验一二含实验要求

微机原理与接口技术

实验指导书

韩宇龙武梦龙编

电子信息工程系

2011年9月

实验要求

一.预习

认真预习实验内容和相关理论知识,编写实验内容所要求的源程序,按要求写好预习报告,无预习报告或预习不合格者不得进行实验。

二.预习报告

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下选中DosShell项进入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=

BX=0000

CX=0000

DX=

SP=0000

BP=0000

SI=0000

DI=0000

DS=193D

ES=193D

SS=194D

CS=

IP=

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:

0000.3...!

..

>mecs:

1——说明:

ME为内存修改命令,用来设置指定内存单元的值。

194E:

0001333.36

>g6

>mdcs:

0cs:

6

194E:

0000.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,7348H

写出题中各指令的寻址方式及各指令的MOVAL,10H[DI]

执行结果。

MOVSS,[DI+10H]

LEABX,[DI]+10H

LESCX,10H+[DI]

3.已知DS=2000H,欲将2000H:

7348H与2000H:

735AH的内容互换。

写出三个不同的程序段,分别用通用数据传送指令,交换指令及堆栈操作指令完成互换操作。

提示:

题中的已知条件可用CodeView的MF命令、R命令直接写入相应的内存单元或寄存器。

4.写出下面程序段中每一条指令的执行结果,以及各程序段所实现的操作。

(1SGWS:

MOVAX,8514H

MOVBX,3692H

MOVCH,AH

SUBAL,BL

DAS

XCHGAL,CH

SBBAL,BH

DAS

MOVAH,AL

MOVAL,CH

(2STMU:

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

MOVAX,2000

指令操作:

立即数送入AX

执行结果:

AX=2000

3.上机调试习题3的主要内容。

①程序采用的主要算法。

②程序框图及源程序清单。

③主要调试步骤、程序功能测试方案和测试结果。

4.上机调试习题4第一个程序段

(1填表

(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.运行程序EXEA

2.EXE,记录运行时的键操作与对应的屏幕显示。

2.从程序开始处运行至第一个09号系统功能调用后,记录显示的字符及DS:

0000开始的

数据区的内容。

3.继续执行至第一个02号系统功能调用后,记录显示的字符。

思考:

为什么09号系统功能调用不能显示‘$’字符?

4.将001B处的指令改为MOVDL,07H,重复2、3步骤,记录程序执行情况。

5.继续执行至第一个01号系统功能调用后,键入8,记录AX的内容。

6.用T命令逐条跟踪,直至转移到0029处(MOVAH,01,记录每次比较所产生

7.分别键入‘X’,回车符,‘$’,重复6的步骤,并作记录。

8.继续运行程序至005B处,跟踪子程序调用、返回与堆栈操作指令,记录SP、IP及

堆栈区的内容。

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],241B40:

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:

00A5CD21INT21

1B40:

00A7B402MOVAH,02

1B40:

00A9B20AMOVDL,0A

1B40:

00ABCD21INT21

1B40:

00ADC3RET

五.预习要求

1.分析EXA

2.EXE程序。

2.熟悉系统功能调用表及ASCII码表。

复习转移指令,掌握各种转移条件及指令执行情况。

3.复习子程序调用与返回指令及堆栈操作指令,掌握指令的操作及执行此类指令对SP及

堆栈内容的影响。

4.复习移位指令,掌握指令操作及其使用方法。

六.预习报告

∙EXA2.EXE的主程序及各子程序的流程图及程序所实现的操作。

∙各02号功能调用输出的代码及其作为ASCII码所代表的字符。

∙CALL0069处的子程序嵌套关系图。

∙调试方案:

写明每个调试步骤的键操作及预期的执行情况。

例如:

对于实验内容4(修改001B处的指令后重新运行:

①.用A命令(A1b从001B处输入并汇编指令:

MOVDL,07后,退出A命令;

②.用G命令(G19或菜单操作执行程序至第一个09号功能调用后,屏幕上应显示字符串:

INPUTSTEING,THEENDFLAGIS。

③.用G命令(G1F或菜单操作继续执行程序至第一个02号功能调用后,因为ASCII码的07H代表振铃符,所以PC机应响铃一次。

七.实验报告(附实验记录

1.EXA

2.EXE程序的功能,运行时的键操作及执行情况(屏幕显示的内容。

2.用程序的实例说明以下问题:

01、02、09号功能调用的使用方法及其所实现的功能。

振铃、回车、换行符的ASCII码及通过02功能调用输出时的作用。

3.根据实验记录,画图表示CALL0069处的子程序嵌套关系及堆栈区的变化情况。

实验讲义一、二:

微机原理与接口技术实验讲义韩宇龙hyulong@88803014-810151********2011.09电子系微机接口实验室16

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

当前位置:首页 > 工程科技 > 能源化工

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

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