微机原理实验指导书.docx

上传人:b****5 文档编号:8643329 上传时间:2023-02-01 格式:DOCX 页数:15 大小:326.52KB
下载 相关 举报
微机原理实验指导书.docx_第1页
第1页 / 共15页
微机原理实验指导书.docx_第2页
第2页 / 共15页
微机原理实验指导书.docx_第3页
第3页 / 共15页
微机原理实验指导书.docx_第4页
第4页 / 共15页
微机原理实验指导书.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

微机原理实验指导书.docx

《微机原理实验指导书.docx》由会员分享,可在线阅读,更多相关《微机原理实验指导书.docx(15页珍藏版)》请在冰豆网上搜索。

微机原理实验指导书.docx

微机原理实验指导书

 

微机原理与接口实验指导书

 

皖西学院机械与电子工程学院

2012.10

实验一DOS命令与汇编源程序输入、汇编、连接、运行

一、实验目的

掌握在计算机上运行汇编语言程序的整个操作过程。

学会将自己编制的汇编语言源程序用EDIT编辑程序输入计算机并存盘;学会用MASM宏汇编程序对汇编语言源程序进行汇编形成二进制目标文件;学会用LINK连接程序对二进制目标文件连接形成可执行文件;学会运行经汇编和连接后形成的可执行文件;学会用DEBUG调试程序运行和调试可执行文件。

二、实验设备

1、PC系列不低于80286档次的微型机;

2、DOS3.3以上版本的操作系统;

3、EDIT,MASM,LINK,DEBUG执行程序。

三、实验步骤

1、用EDIT编辑汇编源程序

(1)MS-DOSEditor的启动与退出

Editor是在DOS系统提示符下启动,其命令格式为:

C:

EDIT[Path][filename]

在编辑完成后,选择屏幕菜单的File命令(按“ALT+F”键)中的Exit项即可退出Editor。

(2)建立文本文件

在MS-DOSEditor的屏幕菜单栏中File命令就是对文本文件的建立、存储和打印的操作。

A.建立文件(New)

打开屏幕菜单栏中File下拉菜单,选择New项。

B.编辑文件

将写好的汇编语言源程序输入到编辑文本区。

输入时,一行

结束后按回车键(Enter)换行。

C.保存文件(Save)

打开屏幕菜单栏中File下拉菜单,选择Save项在弹出的对

话框中键入文件名。

如果要把文件保存到非默认路径下,则在键入文件名的同时键入路径。

D.打开文件(Open)

打开屏幕菜单栏中File下拉菜单,选择Open项。

该窗口中有三个区可以选择要打开的文件:

文件名区:

可以直接键入要打开的文件名;

文件表区:

文件表中列出要打开的所有文件名,供用户选择;

目录/磁盘区:

键入的文件名是哪个磁盘目录中的,在该区中选择。

在Open对话框中用“Tab”或“Shift+Tab”键选择各区。

选完后按“OK”确定。

2.MASM宏汇编程序的使用方法

(1)命令格式和功能

命令格式:

MASM文件名

功能:

对汇编语言源程序进行汇编形成二进制目标文件

(2)操作过程

在DOS下,将目录切换到汇编语言所在目录下,然后调入MASM宏汇编程序。

屏幕显示与操作如下(其中下画线部分表示由用户键入,↙表示回车):

c:

\HB\masm↙

Microsoft(R)MacroAssemblerVersion5.00

Copyright(C)MicrosoftCorp1981-1985,1987.Allrightsreserved.

Sourcefilename[.ASM]:

myfile↙

Objectfilename[myfile.OBJ]:

Sourcelisting[NUL.LST]:

Cross-reference[NUL.CRF]:

51698+417454Bytessymbolspacefree

0WarningErrors

0SevereErrors

宏汇编程序被调入后,先显示版本号,然后依次提出提示。

请用户回答。

第一行提问被汇编的源文件的名字,方括号内表示此文件带有后缀.ASM(.ASM是该源程序文件的隐含扩展名),此时应键入将要汇编的源程序文件的名字,并按回车键。

第二行提问汇编后目标文件的名字,括号中的名字表示约定的文件名(其文件名部分自动采用源程序文件名),若采用这个名字则直接键入回车键,否则键入另起的名字。

第三行提问是否要建立列表文件。

括号中的NUL为“空”的意思,表示不建立列表文件。

若要建立,则需键入文件名,名字任选,也可同源程序文件名,但后缀必须为.LST,后缀可由用户连同文件名一起输入,也可不输入,即自动采用隐含值。

若不需要建立列表文件,则在第三行提问后直接按回车键。

第四行是询问是否建立交叉索引文件,操作方法同上。

3.LINK连接程序的使用方法

(1)命令格式和功能

命令格式:

LINK文件名

功能:

连接二进制目标文件为可执行文件

(2)操作过程

在DOS下,将目录切换到汇编语言所在目录下,然后调入MASM宏汇编程序。

屏幕显示与操作如下(其中下画线部分表示由用户键入,↙表示回车):

c:

\HB\link↙

Microsoft(R)8086ObjectLinkerVersion3.05

Copyright(C)MicrosoftCorp1983,1984,1985.Allrightsreserved.

ObjectModules[.OBJ]:

myfile↙

RunFile[MYFILE.EXE]:

ListFile[NUL.MAP]:

Libraries[.LIB]:

Warning:

nostacksegment

第一行提示要求输入目标文件名。

此时应键入你要连接的目标文件名(后缀.OBJ可省略。

LINK程序自动加上.OBJ为后缀)。

若要连接的是多个目标模块时,一定要用+号或空格将每个文件名分开。

如果输入的名字一行放不下,就在该行的最后输入一个+号,然后按回车键,这时连接程序就提示用户追加目标文件。

所有目标文件输入完后回车。

第二行提示要求输入将要生成的可执行文件的文件名,括号内为LINK程序给出的隐含文件名,它与第一行提示中的目标模块名一样,只是将后缀换成.EXE。

若第一行回答的目标模块是多个的话,则隐含的可执行文件名取为第一个目标文件名。

此行可不输入文件名而直接回车。

第三行提示问是否要建立列表(映象)文件,若要建立,可键入列表文件名,这时可不输入扩展名,由LINK程序自动按隐含值.MAP为扩展名。

如果不要列表文件,可直接按回车键。

第四行提示问是否需要连接库文件。

不需要可直接回车。

连接程序在生成可执行程序时,若用到文件库中的某些目标文件时,就可在连接程序的第四行提示时给出库的名字,以供LINK程序调用。

4.调试程序(DEBUG)

(1)DEBUG的功能及其启动

汇编语言经过编译、连接后生成目标代码。

当运行目标代码时可能出现错误的结果,如果直接查找错误就比较困难。

MS-DOS本身所带的动态调试程序DEBUG是调试汇编语言的有力工具。

用户可以方便的通过DEBUG程序的运行。

可显示或修改存储器的内容,寄存器内容。

可设置单步或设置断点,,也可对存储器的目标代码进行反汇编等。

通过这些参数,可以查看程序的运行情况和查找错误。

DEBUG程序的启动格式如下:

DEBUG[d:

][path][filename][.ext][parm1][parm2]

其中DEBUG是调试程序的文件名,中括号[]代表可选项,d代表盘标识符,path指路径,filename是被调试的文件名,ext是被调试的文件名扩展名(亦称后缀),parm1,parm2代表被调试的文件所带的参数。

(2)DEBUG常用命令的用法

①显示内存单元的内容命令D(DumpCommand)

功能:

显示内存某一部分内容

格式:

D[address]或D[range]

说明:

address表示内存地址,range表示地址的范围。

显示内存内容分三部分:

左边是地址部分,表示此行的首地址(段:

偏移量);中间是存储器内容的以16进制数表示部分,以两位16进制数字表示一存储单元内容;右边是存储器内容的ASCⅡ码部分。

②检查和修改寄存器内容的命令R(RegisterCommand)

功能:

R命令有三种功能:

A.显示所有16位寄存器的内容,以及用字母表示标志位状态和将要执行的下条指令。

格式:

R

B.显示单个16位寄存器的内容,并带有修改这些内容的选择项。

格式:

R[registername]

C.显示8个双字母的标志位状态,并带有修改其中任何一个或全部修改的选择项。

格式:

RF

③执行命令G(GoCommand)

功能:

执行被调试的程序。

格式:

G[=address][address[address…]]

说明:

等号后的address符号代表执行地址,后面的address代表断点地址,最多可设10个断点地址。

程序执行是从当前指令开始,当前指令地址是由CS:

IP内容决定,除非用=address参数取代,(“=”必须输入,便于和后面的断点地址相区别。

)如果=address被指定了,则程序就从CS:

=address开始执行。

④跟踪命令T(TraceCommand)

功能:

本命令可以跟踪一条指令也可以跟踪多条指令。

每执行一条指令后,都显示出当前寄存器内容和标志位的状态以及下一条要执行的指令。

格式:

T[=address][Value]

⑤汇编命令A(AssembleCommand)

功能:

对指定的汇编语言程序段进行汇编。

格式:

A[address]

说明:

本命令是从指定地址开始,输入汇编语言语句,由A命令把它们汇编为机器代码并从指定地址单元开始连续存放。

本命令可输入整段程序汇编。

若在命令中没有指定地址,但前面用过汇编命令时,则接着上一个汇编命令的最后一个单元开始存放。

若前面没有用过汇编命令时,则从CS:

00开始存放。

⑥反汇编命令U(UnassmbleCommand)

功能:

对指令码进行反汇编(即将存储器内容翻译为汇编语言语句)并显示它们的地址,机器码和操作数,以及汇编语言语句。

本命令可将内存区中某段程序的目标代码反汇编为源程序,以便于了解次段程序的内容。

格式:

U[address]或U[range]

说明:

反汇编字节数取决于系统显示格式(系统为40列显示格式时,反汇编16字节,对80列显示格式反汇编32字节)以及反汇编命令的选择方式。

⑦退出命令Q(quiteCommand)

功能:

退出DEBUG管理,返回DOS。

格式:

Q

说明:

Q命令不保存内存中正被调试的程序,若需要这个文件,必须用W命令将它存盘。

5、调试程序一

codesegment

assumecs:

code

start:

moval,33h

movdl,35h

adddl,al

subdl,30h

movah,02h

int21h

movah,4ch

int21h

codeends

endstart

6、调试程序二

(1)用edit输入下述程序,保存为*.asm文件:

假设有一组数据:

5,-4,0,3,100,-51,请编一程序判断:

每个数大于0,等于0,还是小于0,分别输出1,0,-1。

(2)根据要求,将原始数据及存放结果的内存单元分别定义成字变量或字节变量。

(3)利用编辑程序,把编写好的源程序建立为汇编语言源程序文件并存盘。

(4)对源程序文件进行汇编、连接,且修改至无错误,然后运行程序。

(5)利用调试程序观察运行结果。

如果有错,分析并找出错误原因,改写程序并重新调试。

datasegment

xxdb5,-4,0,3,100,-51

yy1db‘y=0’,0dh,0ah,’$’

yy2db‘y=+1’,0dh,0ah,’$’

yy3db‘y=-1’,0dh,0ah,’&’

dataends

stacksegmentparastack‘stack’

db10dup(?

stackends

codesegment

assumecs:

code,ds:

data,ss:

stack

start:

procfar

movax,data

movds,ax

movax,0

movbx,offsetxx

movcx,6

lop:

moval,[bx]

cmpal,0

jgebigr

movdx,offsetyy3

jmpcrt

bigr:

jeequl

movdx,offsetyy2

jmpcrt

equl:

movdx,offsetyy1

crt:

movah,09h

int21h

incbx

looplop

movah,4ch

int21h

codeends

endstart

实验二排序及循环程序设计

一、实验目的

掌握排序及循环程序的编写。

二、实验设备

1、PC系列不低于80286档次的微型机;

2、DOS3.3以上版本的操作系统;

3、EDIT,MASM,LINK,DEBUG执行程序。

三、实验内容

将内存中10个无符号数:

9150,3756,10345,4060,12576,300,66,3420,456,1024由小到大排序。

四、程序设计方法

1.从最后一个数(或第一个数)开始,依次把相邻的两个数进行比较,即第10个数与第9个数比较,第9个数与第8个数比较……若第9个数大于第10个数,则两者交换,否则不交换,直到10个数的相邻两个数都比较完为止。

此时,10个数中的最小数将被排在10个数的最前列。

2.对剩下的9个数重复第1步,找到9个数中的最小数。

3.重复第2步,直到10个数全部排好序为止。

五、实验报告要求

整理好运行正确的源程序和结果,写出实验的心得体会。

 

参考程序:

实验三8253计数器/定时器的实验

一、实验目的

掌握8253定时器的编程原理及应用

练习使用Proteus仿真软件

二、实验内容

利用Proteus仿真实现8253控制LED的闪烁,要求LED点亮0.5秒,熄灭0.5秒。

三、实验步骤

1、画硬件连接图

(1)启动Proteus,点击开始、程序、Proteus7professional、ISIS7professional

(2)放置元件,点击

,再点击

,出现

依次输入808674LS3734LS138NAND8253ALED-REDPULLUP

(3)按下图连接电路

(4)放置标号,点击

,依次放置总线标号,网络标号(如上图)

(5)放置电源和终端,点击

(6)修改元件属性,双击LED,出现如下对话框,将ModelType改为Digital

(7)放置时钟信号,点击

,选择DCLOCK,双击信号源出现如下对话框,将频率改为2M

2、加载软件

(1)启动emu80864.07,生成.com文件或.Exe文件

(2)在emu80864.07,输入程序

参考程序如下;

PORT_0equ0e8h

PORT_1equ0eah

PORT_2equ0ech

PORT_CTRequ0eeh

moval,00110101B

movdx,PORT_CTR

outdx,al

movdx,PORT_0

movax,00h

outdx,al

movax,10h

outdx,al

moval,01110110B

movdx,PORT_CTR

outdx,al

movdx,PORT_1

movax,0e8h

outdx,al

movax,03h

outdx,al

(3)编译程序,点击

,生成.com文件或.Exe文件

(4)加载程序,双击仿真图中的8086CPU,出现如下对话框,点击

加载软件,同时将各参数修改如下图

3.仿真,点击

,系统开始仿真。

四实验报告要求

整理好运行正确的源程序,画出程序流程图,并列出源程序清单,写出实验的心得体会。

实验四8255并行口的实验

一、实验目的

掌握8255A的使用方法。

二、实验内容

1、按下图连接硬件线路。

2、打开emu8086,编制程序,读取开关数据并用LED上显示。

(具体方法同实验三)参考程序如下

a8255equ0F0h;

b8255equ0F2h;

c8255equ0F4h;

m8255equ0F6h;

MOVDX,M8255;

MOVAL,10010000B;

OUTDX,AL

TEST_IT:

MOVDX,a8255

INAL,DX

notal

MOVDX,b8255

OUTDX,AL

JMPTEST_IT

3、仿真

四实验报告要求

整理好运行正确的源程序,画出程序流程图,并列出源程序清单,写出实验的心得体会。

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

当前位置:首页 > 初中教育

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

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