微机原理与汇编实验书.docx

上传人:b****7 文档编号:16567166 上传时间:2023-07-14 格式:DOCX 页数:11 大小:19.87KB
下载 相关 举报
微机原理与汇编实验书.docx_第1页
第1页 / 共11页
微机原理与汇编实验书.docx_第2页
第2页 / 共11页
微机原理与汇编实验书.docx_第3页
第3页 / 共11页
微机原理与汇编实验书.docx_第4页
第4页 / 共11页
微机原理与汇编实验书.docx_第5页
第5页 / 共11页
微机原理与汇编实验书.docx_第6页
第6页 / 共11页
微机原理与汇编实验书.docx_第7页
第7页 / 共11页
微机原理与汇编实验书.docx_第8页
第8页 / 共11页
微机原理与汇编实验书.docx_第9页
第9页 / 共11页
微机原理与汇编实验书.docx_第10页
第10页 / 共11页
微机原理与汇编实验书.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理与汇编实验书.docx

《微机原理与汇编实验书.docx》由会员分享,可在线阅读,更多相关《微机原理与汇编实验书.docx(11页珍藏版)》请在冰点文库上搜索。

微机原理与汇编实验书.docx

微机原理与汇编实验书

 

微机原理与汇编语言

 

前言

本课程是一门实践性较强的课程。

教学采用以课堂教学为主,讲授微型计算机的各部分组成、工作过程、互相之间的连接,以及如何使用汇编语言编程,同时使用教学实验设备,通过一定数量的实验,让学生动手完成微型机各部件之间通过接口的联接、编程及简单应用,使学生对微型计算机的主要技术做到深入理解、牢固掌握、灵活应用。

并为一些对计算机硬件要求较高的专业提供了锻炼学生的动手能力以及发挥创造能力的实验平台。

本实验系统在windows窗口界面调试软件和实验演示软件的支持下,极大地激发了学生学习、实验的兴趣,有效地提高了教学质量。

本书的实验内容由汇编语言程序设计实验和硬件接口电路实验两个部分构成。

接口部分实验是针对DVCC-8086H通用微机原理与接口实验系统而设计的两个实验。

通过开设基础性、提高性、综合性实验以及相关的课程设计,来提高学生的动手能力。

 

汇编语言程序设计的实验环境及上机步骤

一、实验环境

汇编语言程序设计的实验环境如下:

1、硬件环境

微型计算机一台

2、软件环境

✧Windows98/2000/XP操作系统

✧任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)

✧汇编程序(MASM.EXE或TASM.EXE)

✧连接程序(LINK.EXE或TLINK.EXE)

✧调试程序(DEBUG.EXE或TD.EXE)

文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。

二、上机实验步骤

1、确定源程序的存放目录

建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。

如果没有创建过此目录,请用如下方法创建:

通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。

把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此目录中。

2、建立ASM源程序

汇编语言原程序后缀为.asm。

建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。

下面的例子说明了用EDIT文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。

在Windows中点击桌面左下角的“开始”按钮→选择“运行”→在弹出的窗口中输入“EDIT.COMC:

\ASM\HELLO.ASM”,屏幕上出现EDIT的编辑窗口,

窗口标题行显示了EDIT程序的完整路径名。

紧接着标题行下面的是菜单行,窗口最下面一行是提示行。

菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。

如果键入EDIT命令时已带上了源程序文件名(C:

\ASM\HELLO.ASM),在编辑窗口上部就会显示该文件名。

如果在键入EDIT命令时未给出源程序文件名,则编辑窗口上会显示“UNTITLED1”,表示文件还没有名字,在这种情况下保存源程序文件时,EDIT会提示输入要保存的源程序的文件名。

编辑窗口用于输入源程序。

EDIT是一个全屏幕编辑程序,故可以使用方向键把光标定位到编辑窗口中的任何一个位置上。

EDIT中的编辑键和功能键符合Windows的标准,这里不再赘述。

源程序输入完毕后,用Alt-F打开File菜单,用其中的Save功能将文件存盘。

如果在键入EDIT命令时未给出源程序文件名,则这时会弹出一个“Saveas”窗口,在这个窗口中输入你想要保存的源程序的路径和文件名(本例中为C:

\ASM\HELLO.ASM)。

3、用MASM.EXE汇编源程序产生OBJ目标文件

源文件HELLO.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。

具体操作如下:

方法一:

在Windows中操作

用资源管理器打开源程序目录C:

\ASM,把HELLO.ASM拖到MASM.EXE程序图标上。

方法二:

在DOS命令提示符窗口中操作

选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:

I:

>C:

<回车>

C:

>CD\ASM<回车>

C:

\ASM>MASMHELLO.ASM<回车〉

不管用以上二个方法中的哪个方法,进入MASM程序后,都会提示让你输入目标文件名(Objectfilename),并在方括号中显示默认的目标文件名,建议输入目标文件的完整路径名,如:

C:

\ASM\HELLO.OBJ〈回车〉。

后面的两个提示为可选项,直接按回车。

注意,若打开MASM程序时未给出源程序名,则MASM程序会首先提示让你输入源程序文件名(Sourcefilename),此时输入源程序文件名HELLO.ASM并回车,然后进行的操作。

如果没有错误,MASM就会在当前目录下建立一个HELLO.OBJ文件(名字与源文件名相同,只是扩展名不同)。

如果源文件有错误,MASM会指出错误的行号和错误的原因。

警告错误(WarningErrors)。

警告错误不影响程序的运行,但可能会得出错误的结果。

严重错误(SevereErrors)。

对于严重错误,MASM将无法生成OBJ文件。

在错误信息中,园括号里的数字为有错误的行号,后面给出了错误类型及具体错误原因。

如果出现了严重错误,你必须重新进入EDIT编辑器,根据错误的行号和错误原因来改正源程序中的错误,直到汇编没有错为止。

注意,汇编程序只能指出程序的语法错误,而无法指出程序逻辑的错误。

4、用LINK.EXE产生EXE可执行文件

在上一步骤中,汇编程序产生的是二进制目标文件(OBJ文件),并不是可执行文件,要想使我们编制的程序能够运行,还必须用连接程序(LINK.EXE)把OBJ文件转换为可执行的EXE文件。

具体操作如下:

方法一:

在Windows中操作

用资源管理器打开源程序目录C:

\ASM,把HELLO.OBJ拖到LINK.EXE程序图标上。

方法二:

在DOS命令提示符窗口中操作

选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入LINK命令:

I:

>C:

<回车>

C:

>CD\ASM<回车>

C:

\ASM>LINKHELLO.OBJ<回车>

不管用以上二个方法中的哪个方法,进入LINK程序后,都会提示让你输入可执行文件名(Runfile),并在方括号中显示默认的可执行文件名,建议输入可执行文件的完整路径名,如:

C:

\ASM\HELLO.EXE〈回车〉。

后面的两个提示为可选项,直接按回车。

注意,若打开LINK程序时未给出OBJ文件名,则LINK程序会首先提示让你输入OBJ文件名(ObjectModules),此时输入OBJ文件名HELLO.OBJ并回车,然后进行的操作与上面完全相同。

如果没有错误,LINK就会建立一个HELLO.EXE文件。

如果OBJ文件有错误,LINK会指出错误的原因。

对于无堆栈警告(Warning:

NOSTACKsegment)信息,可以不予理睬,它不影响程序的执行。

如链接时有其它错误。

须检查修改源程序,重新汇编、连接,直到正确。

5、执行程序

建立了HELLO.EXE文件后,就可以直接在DOS下运行此程序,如下所示:

C:

>HELLO〈回车〉

程序运行结束后,返回DOS。

如果运行结果正确,那么程序运行结束时结果会直接显示在屏幕上。

如果程序不显示结果,我们如何知道程序是否正确呢?

例如,这里的HELLO.EXE程序并未显示出结果,所以我们不知道程序执行的结果是否正确。

这时,我们就要使用TD.EXE调试工具来查看运行结果。

此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,调试程序时也要使用TD.EXE。

下图为汇编语言程序上机的整个流程:

Y

Y

Y

N

N

N

有错?

有错?

有错?

结束

汇编

输入(修改)源程序

连接

运行

查错

开始

用EDIT,NOTEPAD等任何文本编辑器。

源程序存为.ASM文件

用TD、DEBUG等调试程序进行调试。

命令格式:

TD<可执行文件名.EXE>

用LINK连接程序进行连接。

连接后生成.EXE可执行文件。

命令格式:

LINK<目标文件名.OBJ>;

用MASM宏汇编程序进行汇编。

汇编后生成.OBJ目标文件。

命令格式:

MASM<源文件名.ASM>;

 

 

例:

下面给出了一个完整的汇编语言程序hello.asm,请按照上面所介绍的过程练习。

 

dataSEGMENT

HelloDB‘Hello,world!

’,0DH,0AH,’$’

dataENDS

progSEGMENT

ASSUMECS:

prog,DS:

data

start:

MOVAX,data

MOVDS,AX

LEADX,hello

MOVAH,9

INT21H

MOVAH,4CH

INT21H

progENDS

ENDstart

1、用MASM程序对其进行汇编,产生SAMPLE.OBJ文件。

2、用LINK程序对其进行连接,产生SAMPLE.EXE文件。

3、执行SAMPLE.EXE文件,并观察运行结果是否相符。

4、用DEBUG调试程序。

问题

汇编语言源程序、汇编程序及汇编之间的区别与联系?

程序中MOVAH,4CH与INT21H这两条语句的功能是什么?

能否省略?

 

实验一DEBUG程序的使用

预习内容

预习DEBUG程序的各种命令功能及使用方法。

实验目的

1、掌握DEBUG程序的各种命令,重点是R,D,E,U,T,G,Q等命令的使用。

2、掌握用DEBUG调试自编程序的方法,为以后实验打下基础。

实验内容

1、程序的装入和退出C:

>DEBUG[d:

][path]name.exe

退出DEBUG-Q

2、程序的运行

连续运行-G[=地址1][地址2]

跟踪运行-T[=地址][值]缺省时从CS:

IP处执行

3、内容查询

D命令显示内存单元内容-D地址

R命令显示寄存器内容-R寄存器名

4、修改存储单元和寄存器

E命令可方便地修改任一RAM单元的内容-E地址内容表

R命令修改寄存器内容-R寄存器名

5、反汇编

U命令反汇编用于把内存单元的内容作为机器指令,用助记符的形式显示出来。

-U地址或者-U地址范围。

问题

1、在指令MOV[BX],AX中,操作数[BX]的寻址方式是什么?

在DEBUG下执行完该指令后,如何查看执行结果?

2、可否随意在DEBUG提示符“-”后不带参数发出命令G?

什么情况下使用命令G时,可不用“=”给出程序的首地址?

 

实验二DOS系统功能调用

预习内容

1、预习DOS系统功能调用的方法。

2、复习比较指令、条件转移指令的用法。

实验目的

1、掌握DOS系统功能调用中单字符的输入和显示;字符串的输入和显示的方法。

2、掌握宏汇编语言MASM上机操作过程和系统功能调用的使用方法。

实验内容

设计要求:

要求从键盘接受一个字符,并判断是否为‘Y’如果是则从键盘读入一串字符‘Iamgladtoseeyou!

’并显示该字符;否则显示该输入的字符。

问题

1、DOS系统功能调用如何实现的?

2、调用INT21H中的09H功能时,要注意什么?

 

实验三分支程序设计

预习内容

1、预习转移类指令的用法。

2、复习比较指令、转移指令、的用法。

实验目的

1、学习提示信息的显示及键盘输入字符的方法。

XX文库-让每个人平等地提升自我2、掌握宏汇编语言MASM上机操作过程和分支程序的编写方法。

实验内容

设计要求:

要求从键盘接受一个字符,并判断是否是“0~9”数字键,如果是则提示:

itisanumber!

如果不是则提示:

itisnotanumber!

问题

1、转移指令分为哪几种,各指令之间有何区别?

2、调用INT21H中的09H功能时,要注意什么?

 

实验四循环程序设计

预习内容

预习循环控制指令的用法。

实验目的

掌握宏汇编语言MASM上机操作过程和循环程序的编写方法。

实验内容

设计要求:

写一个把字符串中的所有大写字母改为小写的程序假设字符串以‘0’结尾。

参考流程如下:

问题

1、循环控制指令分为哪几种,各指令之间有何区别?

2、汇编语言程序中语句END后的标号作用是什么?

3、一个段的大小为多少?

一定是64KB吗?

如何在DEBUG下查看程序在内存的存放情况?

取一个字符

转成小写并保存

调整指针

是大写字符?

到字符串尾?

结束

N

Y

设置指向字符串的指针

N

Y

 

实验五子程序设计

预习内容

预习子程序的定义、调用及返回的方法。

实验目的

1、掌握子程序设计的基本方法,包括子程序的定义、调用和返回,子程序中如何保护和恢复现场,主程序与子程序之间如何传递参数。

实验内容

设计要求:

用子程序结构,将从MEM单元开始的10个8位无符号数按从大到小的顺序排列。

问题

1、什么是子程序?

2、子程序设计与应用应注意哪些问题?

3、子程序调用有哪些技巧?

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

当前位置:首页 > 经管营销

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2