汇编语言实验环境和要求
汇编语言实验环境和要求
《汇编语言》是计算机及计算机类专业学生的专业基础课,是培养学生直接使用计算机硬件资源能力的一门课程。它不仅能帮助学生进一步理解计算机组成原理课程中的各种概念,而且还为其他课程:操作系统、接口与通信技术和计算机控制技术等课程提供必要的预备知识。该课程在计算机学科设置中起着承上启下的作用。 一、实验环境
汇编实验是在一般PC 机上完成的,采用MASM6.11宏汇编进行实验。MASM6.11版本对硬件环境无特殊要求,对软件的要求如下:
(1) 操作系统:Windows2000的命令提示符状态。
(2) 编辑环境:EDIT.COM等文本编辑器(随操作系统提供)。 (3) 汇编和连接程序: ML.EXE ML.ERR LINK.EXE
(4) 调试程序:DEBUG.EXE(随操作系统提供)。
二、PC 机DEBUG 调试工具的使用
DEBUG.EXE 程序是专门为分析和开发汇编语言程序而设计的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。是学习汇编语言必须掌握的调试工具。
⑴ DEBUG程序使用
在命令提示符下键入命令:
DEBUG [盘符:][路径][文件名.EXE][参数1][参数2] 这时屏幕上出现DEBUG 的提示符“-”,表示系统在DEBUG 状态下,此时可以用DEBUG 进行程序调试。若所有选项省略,则仅把DEBUG 装入内存,此时可对当前内存中的内容进行调试,也可以使用N 或者L 命令从指定盘上装入要调试的程序;如果命令行中有文件名,则把DEBUG 程序调入内存后,再由DEBUG 将指定的文件名装入内存。
⑵ DEBUG的常用命令 1) 汇编命令 A 格式:A[起始地址] 功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。若缺省起始地址,则从当前CS:100地址开始存放。A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。
2) 反汇编命令 U 格式1:U[起始地址]
格式2:U[起始地址][结束地址|字节数] 功能: 格式1从指定起始地址处开始将32个字节的目标代码转换成汇编指令形式,如果省略起始地址,则从当前地址CS:IP开始。
格式2将指定范围的内存单元中的目标代码转换成汇编指令。 3)显示、修改寄存器命令 R 格式:R[寄存器名] 功能:如果给出寄存器名,则显示该寄存器的内容并可进行修改。如果不指定寄存器名,
则显示所有寄存器的内容及当前值(不能修改)。
R 命令只能显示、修改16位寄存器。 DEBUG 状态下各标志位符号的含义为
标志位 置位1 复位0
OF OV NV
DF DN UP
IF EI DI
SF NG PL
ZF ZR NZ
AF AC NA
PF PE PO
CF CY NC
4)显示存储单元命令 D 格式1:D[起始地址]
格式2:D[起始地址][结束地址|L字节数]
功能: 格式1从起始地址开始按十六进制显示80H 个单元的内容,每行16个单元,共8行,每行右边显示16个单元的ASCII 码,不可显示的ASCII 码则显示“·”。格式2显示指定范围内存储单元的内容,其他显示方式与格式1一样。如果省略起始地址或地址范围,则从当前的地址开始按格式1显示。
例如: -D 200 ;表示从DS:0200H开始显示128个单元内容
-D 100 120 ;表示显示DS:0100-DS:0120单元的内容
说明:在DEBUG 中,地址表示方式有如下形式:
段寄存器名:相对地址,如:DS:100 段基值:偏移地址(相对地址),如:23A0:1500 5) 修改存储单元命令 E
格式1:E[起始地址] [内容表] 格式2:E[地址]
功能: 格式1按内容表的内容修改从起始地址开始的多个存储单元内容,即用内容表指定的内容来代替存储单元当前内容。
例如:
—E DS:0100 'VAR'12 34
表示从DS:0100 为起始单元的连续五个字节单元内容依次被修改为
'V'、'A'、'R'、12H、34H。
格式2是逐个修改指定地址单元的当前内容。 如:—E DS:0010
156F:0010 41.5F
其中156F:0010单元原来的值是41H,5FH 为输入的修改值。若只修改一个单元的内容,这时按回车键即可;若还想继续修改下一个单元内容,此时应按空格键,就显示下一个单元的内容,需修改就键入新的内容,不修改再按空格跳过,如此重复直到修改完毕,按回车键返回DEBUG“-”提示符。如果在修改过程中,将空格键换成按“-”键,则表示可以修改前一个单元的内容。
6) 运行命令 G
格式:G[=起始地址][第一断点地址[第二断点地址……]]
功能:CPU从指定起始地址开始执行,依次在第一、第二等断点处中断。若省略起始地址,则从当前CS:IP指示地址开始执行一条指令。最多可设置10个断点。
7) 跟踪命令 T
格式:T[=起始地址][正整数]
功能:从指定地址开始执行‘正整数’条指令,若省略‘正整数’,表示执行一条指令,若两项都省略,表示从当前CS:IP指示地址开始执行一条指令。
8) 指定文件命令 N
格式:N 功能:指定即将调入内存或从内存写入磁盘的文件名。该命令应该用在L 命令和W 命令之前。
9) 装入命令 L
格式1:L[起始地址][盘符号][扇区号][扇区数] 格式2:L[起始地址]
功能: 格式1根据盘符号,将指定扇区的内容装入到指定起始地址的存储区中。 格式2将N 命令指出的文件装入到指定起始地址的存储区中,若省略起始地址,则装入到CS:100处或按原来文件定位约定装入到相应位置。
10) 退出命令 Q 格式:Q
功能:退出DEBUG,返回到操作系统。 三、PC 机汇编语言程序设计实验步骤
⑴ 编辑源程序文件
使用EDIT 文本编辑器编辑源文件,键入
EDIT 或 EDIT
但使用后者时应注意将文件保存为.ASM文件。 ⑵ 汇编连接源程序文件
ML ;
如果源程序没有错误,则自动生成.OBJ文件和.EXE可执行文件。 若源程序有语法错误时,会出现错误信息提示,需回到编辑状态下修改源程序后重新汇编。
⑶运行程序
经过汇编、连接后生成的.EXE文件,可直接运行,只要键入相应的文件名即可。 ⑷调试程序:
使用DEBUG.COM 调试前面生成的可执行的.EXE文件。各种DEBUG 命令如前所述。 四、实验报告书写要求
⑴ 使用专用的实验报告纸,每个实验一份,字迹工整,内容清晰,注意填写必要的信息(如:姓名、学号、班级、辅导教师、同实验者);
⑵ 填写实验题目、实验目的等;实验步骤中要求列出当次实验的过程及各种数据输入输出的情况;汇编语言程序设计部分还要写出完整的源程序,以及上机调试过程中遇到的问题和解决方法。