微机原理与汇编实验指导书第一次.docx
- 文档编号:4677878
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:15
- 大小:1.39MB
微机原理与汇编实验指导书第一次.docx
《微机原理与汇编实验指导书第一次.docx》由会员分享,可在线阅读,更多相关《微机原理与汇编实验指导书第一次.docx(15页珍藏版)》请在冰豆网上搜索。
微机原理与汇编实验指导书第一次
微机原理与汇编语言程序设计
实验指导书
计算机与信息工程系Copyright©2006.03
目录
上机实验环境……………………………………………………………………………….…….1
实验一、寄存器与存储器………………………………………………………………….…….2
实验二、DEBUG调试程序……………………………………………………….……….…….6
实验三、源程序建立与汇编………………………………………………………….………….9
实验四、顺序程序设计……………………………………………………………….…………13
实验五、分支程序设计………………………………………………………………….………15
实验六、循环程序设计………………………………………………………………….………17
实验七、子程序设计…………………………………………………………………….………19
实验八、中断调用程序设计…………………………………………………………….……….21
实验九、宏汇编程序设计……………………………………………………………….………23
实验十、模块化程序设计……………………………………………………………….………25
实验十一、与C语言混合编程…………………………………………………………....…….26
上机实验环境
【硬件环境】
目前8086汇编语言程序一般在IMBPC/XT及兼容机上运行,因此要求机器具备基本配置的IMBPC/XT及兼容机就可以了,对机器的硬件环境没有特殊的要求。
【软件环境】
1.操作系统:
MS-DOS
2.源程序编辑程序:
纯文本编辑器,如:
EDIT、EDLIN、记事本等
3.汇编程序:
MASM5.0、TASM3.0以上。
4.连接程序:
LINK
5.调试程序:
DEBUG
实验一、寄存器与存储器
【实验目的】
初步认识调试程序DEBUG,掌握调试程序时常用的命令与操作。
【实验内容】
1.调试程序DEBUG的启动与退出。
2.显示与修改寄存器的内容。
3.显示与修改存储器的内容。
【实验准备】
1.复习计算机中数据的表示。
2.复习8086CPU内部结构,特别是8086CPU中的寄存器。
3.复习8086CPU存储器组织,存储器的分段、逻辑地址、物理地址等概念。
4.复习汇编语言程序上机过程,特别是DEBUG命令。
【实验步骤】
1.调试程序DEBUG的启动与退出。
1)启动DEBUG:
在DOS提示符下键入:
DEBUG。
进入后显示DEBUG提示符‘-’,如下图:
2)DEBUG帮助:
在DEBUG提示符下键入:
?
。
DEBUG会列出所有命令及使用方法简单提示,如下图:
3)十六进制数加减法:
在DEBUG提示符下键入:
H1234ABCD。
观察结果。
4)退出DEBUG:
在DEBUG提示符下键入:
Q。
即可退出,进入DOS。
2.显示与修改寄存器的内容。
1)显示所有寄存器内容:
在DEBUG提示符下键入:
R。
显示:
2)显示和修改指定寄存器内容:
在DEBUG提示符下键入:
RAX。
显示AX内容,如需修改,则直接键入要修改的值(图中1234),若不想修改,直接回车便可,如下图:
3)显示修改标志寄存器:
在DEBUG提示符下键入:
RF。
显示当前标志,如需修改,则直接键入要修改的值(可按任意顺序),若不想修改,直接回车便可,注意标志位的缩写:
0标志—NVUPDIPLNZNAPONC
1标志—OVDNEINGZRACPECY,如下图:
4)请参照上述操作步骤,显示和修改各寄存器内容及标志寄存器内容,观察结果并记录。
3.显示与修改存储器的内容。
1)显示存储器的内容,格式:
D[地址]或D[范围],如:
D100:
显示100H单元开始的80个字节的内容。
D10011F:
显示100H~11F单元的内容。
D100L8:
显示100H单元开始的8个字节的内容。
D:
显示上一个D命令显示单元的后续80个字节的内容。
如下图:
2)修改存储器的内容,格式:
E地址[数据数据...]。
注意:
地址不能省略,但数据可以省略。
省略数据列表时可以交互输入,空格继续,回车结束。
如:
EDS:
10001A2B3C4D5E,‘WINDOWS’:
将字节列表中给出的11个字节填入DS:
1000开始的存储单元。
E100:
将从100单元开始逐个修改存储单元内容。
如下图:
【实验要求】
1.叙述使用DEBUG调试程序的过程。
2.分析实验过程中出现的错误的原因。
实验二、DEBUG调试程序
【实验目的】
掌握DEBUG调试程序中的汇编与调试命令,并利用DEBUG进行简单的程序设计。
【实验内容】
1.汇编与反汇编命令。
2.程序调试命令。
3.简单程序设计。
【实验准备】
1.复习汇编语言程序上机过程。
2.复习8086数据传送类指令。
3.复习8086算术运算指令。
【实验步骤】
1.汇编与反汇编命令。
1)汇编命令:
格式:
A[地址],若省略地址,则默认为当前的CS:
IP。
如:
A100:
从100单元开始逐句输入汇编指令,回车后DEBUG自动翻译成机器码,如下图:
2)反汇编命令:
格式:
U[地址]或U[地址范围],若省略地址,则默认为当前的CS:
IP。
如:
U100:
将100H单元开始的32个字节的内容翻译成汇编指令并显示,如下图:
2.程序运行跟踪命令。
1)运行命令:
格式:
G[=地址],若省略地址,则默认为当前的CS:
IP。
初次调试时不建议采用,可能会因为程序设计不当,造成意想不到的结果。
2)跟踪命令:
格式:
T[=地址][指令条数],若省略地址,则默认为当前的CS:
IP。
跟踪命令从指定的地址开始执行指令条数规定的指令后暂停,并显示寄存器内容和当前标志值。
若不指定指令条数,则默认为1,即为单步跟踪。
如下图:
de
3)参照步骤1、2所述,观察并记录一下指令执行的结果:
MOV、ADD、ADC、SUB、SBB、INC、DEC。
3.简单程序的设计。
编写实现以下要求的简单汇编指令程序(任选其一),调试运行、观察并记录结果。
1)交换SI的高低字节。
2)计算200H开始的3个字节单元的累加和。
3)计算XY(X、Y为16位任意整数),结果存放到200H开始的单元。
参考程序。
1)交换SI的高低字节。
MOVAX,SI
XCHGAL,AH
MOVSI,AX
INT3;断点中断调用指令,便于程序调试。
2)计算200H开始的3个字节单元的累加和。
SUBAX,AX
ADDAL,[200]
ADCAH,0
ADDAL,[201]
ADCAH,0
ADDAL,[202]
ADCAH,0
INT3
3)计算XY。
MOVAX,X;X为被乘数
MOVBX,Y;Y为乘数
IMULBX
MOV[200],AX;低16位
MOV[202],DX;高16位
INT3
【实验要求】
1.记录指令运行和程序运行的结果。
2.编写、调试运行程序,分析实验过程中出现的错误的原因。
实验三、源程序建立与汇编
【实验目的】
1.熟悉汇编语言源程序的一般结构。
2.熟悉常用伪指令的使用。
3.掌握汇编程序MASM和连接程序LINK的使用方法和从源程序建立到生成可执行文件的汇编连接全过程。
【实验内容】
1.建立汇编语言源程序文件.ASM。
2.利用汇编程序将源文件汇编成用机器码表示的目标文件.OBJ。
3.用连接程序把目标文件转化成可执行文件.EXE。
4.运行可执行文件。
【实验准备】
1.复习汇编语言程序上机过程。
2.复习汇编语言语句格式及伪指令。
3.复习汇编语言的段结构。
【实验步骤】
1.汇编语言源程序的建立。
1)选择一个或自编一个你熟悉的完整的汇编语言源程序。
2)使用编辑程序录入。
格式:
EDIT[文件名]。
如:
在DOS提示符下,键入EDITABC.ASM:
用文本编辑程序打开或新建文件名为ABC.ASM的汇编语言源程序,如下图:
3)逐句输入源程序,输入完毕,保存。
如下图:
2.汇编为目标文件
1)使用汇编程序MASM。
格式:
MASM[源文件名.asm],[目标文件名.obj],[列表文件名.lst],[交叉索引文件名.crf]。
若省缺文件名,则MASM采用交互式提示输入。
如下图:
2)注意汇编过程和结束后的错误与警告提示。
MASM分警告错误(WarningErrors)和严重错误(SevereErrors)。
出现严重错误时汇编不能进行,此时应分析错误提示,找出原因,仍用EDIT修改后重新汇编,直到错误为0为止。
3)汇编正确,将至少产生目标文件(.OBJ)。
3.用连接程序生成可执行文件
1)目标文件不能直接运行,需要用到连接程序。
连接程序LINK可将多个.OBJ文件(即一个程序的多个模块)连接生成一个可执行文件.EXE。
格式:
LINK[目标文件1.OBJ],[目标文件2.OBJ]…。
若省缺文件名,则采用交互式输入。
如下图:
2)同样注意连接过程的错误与警告信息。
若有错误,在分析错误提示,找出原因后,仍须用EDIT修改源程序,重新汇编,重新连接,直到错误为0为止。
4.执行程序
1)通过以上的操作我们得到了一个可直接执行的文件。
在DOS提示符下键入文件名即可运行程序。
如:
ABC
2)有时程序可执行了,但在屏幕上看不到结果或者不是我们预期的结果,这时我们就又要用到上个实验中的DEBUG程序进行察看或调试。
3)直接调试可执行文件的方法。
格式:
DEBUG文件名.EXE。
如:
DEBUGABC.EXE
参考程序。
功能:
从内存中存放的10个无符号字节整数中找出最小数并保存在AL中。
DATASEGMENT
BUFDB23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FH
CNEQU$-BUF
DATAENDS
STACKSEGMENTSTACK'STACK'
STADB10DUP(?
)
TOPEQU$-STA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETBUF
MOVCX,CN
DECCX
MOVAL,[BX]
INCBX
LP:
CMPAL,[BX]
JBENEXT
MOVAL,[BX]
NEXT:
INCBX
DECCX
JNZLP
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
【实验要求】
1.输入源程序,在实验报告中列出源程序清单。
2.分析实验过程中出现的错误的原因,说明解决办法。
3.执行程序,记录运行结果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 汇编 实验 指导书 第一次