本科-汇编实验教案(8学时)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
攀枝花学院
Panzhihua University 教案20 11 ~2012学年度第一学期
课程名称汇编语言课程实验
学时(学分) 8学时(0.5学分)
适用班级
授课教师
教师职务
教学单位计算机学院
教务处制
实验教案(首页)
实验教案
课题(项目)名称: DEBUG编程与调试计划学时: 2学时实验类型: 1.演示性□ 2.验证性√ 3.综合性□ 4.设计性□ 5.其它□
授课日期: 年月日第周星期第节
实验目的:
1、掌握DEBUG常用命令。
2、掌握汇编语言程序的一般格式
3、掌握使用masm编译和连接汇编语言程序。
4、学习如何用debug进行程序调试
实验设备:
1、硬件环境
微型计算机(Intel x86系列CPU)一台
2、软件环境
Windows98/2000/XP操作系统、调试程序DEBUG.EXE。
实验内容:
一、DEBUG程序的调用
1、打开windows命令窗口
打开windows命令窗口的步骤:选择“开始”→”运行”
(1)在windows98/xp环境中,输入“command”命令;
(2)在windows2000环境中,输入“cmd”命令;
2、启动debug
在命令窗口中启动DEBUG,可键入命令:
DEBUG 文件名 [参数]
在DEBUG启动成功后,将出现提示符“-”,此时就可用DEBUG命令来调试程序。
关于使用命令的几点说明:
●命令是单个字母
●出现提示符“-”后才能输入命令,在按“回车”键后,该命令才开始执行。
●DEBUG把键入的数字均看成十六进制数
二、DEBUG的主要命令
1显示与修改寄存器
1)r [寄存器名]
功能:显示和修改寄存器内容
例:
-r ;显示所有寄存器的内容
-r ax ;显示和修改某个寄存器内容
2)rf
功能:显示和修改标志位
2、显示与修改寄存器存储单元
1)d [范围]
功能:显示指定范围内的内存单元内容。其中范围的格式:
①d 起始位置
从开始位置显示128个字节的内容
例:d 1381:100
说明:
●xxxx:yyyy——前面4位十六进制数是内存单元的段地址,后面4位十六进制数是内存单
元的偏移量;
●中间显示区域是内存单元(十六进制的形式),每行显示16个字节的内容;
●右边以“字符”显示内存单元值。
②d 起始位置结束位置
从开始位置显示到结束位置
例:d ds:0 f
③d 起始位置L 长度
从从开始位置显示指定长度的内容
例:d ds:0 L 10
2) e 地址字节值表
功能:用值表中的值替换从“地址”开始的内存单元内容
例:
d 1af5:0
e 1af5:0 12 34 56
d 1af5:0
f 范围字节值表
功能:用值表中的值填充指定范围的内存单元内容,其中范围通常是1)中的后两种格式。例:
d 1af5:0100
f 1af5:0100 l 20 1 2 3 4 5
d 1af5:0100
d 1af5:0
f 1af5:0 f ‘abcdef’
d 1af5:0
3编程与调试命令
1) a [地址]
功能:输入汇编指令
例:
e ds :200 ‘abcd$’
;从地址ds:200输入字符串‘abcd’,以‘$’为结束字符.
d ds:200
a 100
输入以下命令
mov dx,200
mov ah,9
int 21 ;调用9号功能显示“字符串”。“字符串”的起始地址为ds:200 int 20 ;结束程序
2)u [范围]
功能:反汇编,显示机器码所对应的汇编指令
例:u 100
3)g [=起始地址] [断点地址]
功能:从当前地点开始执行,到终点结束
●如未指定起始地址则从当前的cs:ip指示的地址开始执行。
●如未指定断点地址,到终点结束。
例:g = 100 ;显示字符“abcd”
4)t [=地址] [正整数]
功能:跟踪执行。从指定地址开始执行‘正整数’条指令,若缺省‘正整数’,表示执行一条指令,若两项都缺省,表示从当前CS:IP指示地址开始执行一条指令。
5)P命令
p [=地址] [正整数]
功能:其使用方式与t命令相同,但不进入子程序调用或软中断
例:p=100
p
p
三、汇编语言程序上机过程。
1、建立汇编语言程序源文件。
可使用任何一个文本编辑器(如,写字板,word软件)编辑源文件,源文件的扩展名通常取为.asm。
例:在屏幕上显示字符串‘hello, world.’
参考实例:
stack1 segment stack;
dw 256 dup(?)
stack1 ends
data1 segment
msg db 'hello,word$'
data1 ends
code1 segment
assume cs:code1,ds:data1,ss:stack1
start:mov ax,data1
mov ds,ax
mov dx,offset msg
mov ah,9
int 21h
mov ah,4ch
int 21h ;终止程序的执行,返回dos
code1 ends
end start
2 、汇编源文件,形成目标文件。
1)打开windows命令窗口(参见实验一)
2)进入masm程序的安装目录。(通常为 c:\masm)
例:cd c:\masm ;cd命令为dos操作系统的命令
3)汇编文件
在dos命令窗口中可键入命令:masm