试验一--汇编语言环境的熟悉及Debug的使用上机指导
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一汇编语言环境的熟悉及Debug的使用(4学时)
实验类别:基本实验
实验目的:熟悉汇编语言系统环境,利用Debugger调试工具来调试汇编语言程序。
实验内容:熟悉汇编语言系统环境,通过单的程序的调试,掌握MASM, LINK, Debugger的使用。
实验步骤:
1.将MASM文件夹复制到D:盘根目录下。
2.开始——〉所有程序——〉附件——〉命令提示符
3.C:\Documents and Settings\user> D:
D:\>CD MASM
D:\MASM>EDIT EXAM.ASM
(D:\MASM>为盘符和路径,EDIT为编辑环境.)进入了Edit编辑环境。
输入代码:
DATA SEGMENT
HELLO DB ‘HELLO WORLD!$’
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START:MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET HELLO
MOV AH, 9
INT 21H
MOV AH, 4CH
INT 21H
CODE ENDS
END START
保存
退出
(也可以用文本等编辑软件编辑一个后缀为.ASM的汇编语言源文件)5。对源文件进行汇编:
输入:D:\ MASM>MASM EXAM.ASM
输入3个回车
如果有错误回到EDIT里打开此文件,修改并重新汇编,直到没有错误。
6。对目标文件进行连接:
输入:D:\ MASM>LINK EXAM.OBJ
如果有错误回到EDIT里打开此文件,修改并重新汇编和连接,直到
没有错误。
7。运行程序:D:\ MASM>EXAM.EXE
如果看到屏幕上输出HELLO WORLD!,那么你的程序是正确的,否则回到
EDIT里打开此文件,修改并重新汇编、连接和执行,直到输出HELLO
WORLD!。
8。调试程序
学会使用D 、T、U等命令。
D:\ MASM >DEBUG EXAM.EXE
--U
你应该看到从START开始到结束的所有程序代码,看不到的就是伪代码。(理解一下伪代码的概念吧)
--T
看看各个寄存器的值
--T
看看各个寄存器的值,有什么变化?
--T
有什么变化?
--D DS:0000
你将会看到HELLO WORLD!$的ASCII码值。
-G
-Q
9.思考一下
如果在在HELLO变量前添加一个变量data1 db 22,那么HELLO在数据段的偏移是多少?在程序里执行过程中是可以看出来的,怎么看出来呢?
10.编写一程序,求出下列公式中的Z值,并存放在RESULT单元中。
Z=(X+Y)*2
注:Z值对不对呢?如何看出来的?
参考:
Data segment
X db 22
Y db 32
Result db ?
Data ends
11.试编写一程序,要求从键盘输入一个小写字母,变成大写输出到显示器。
一定要有输入和输出功能奥!!
12.现有一数组,请同学们将这5个数的和放到sum单元:
Data segment
Buffer db 22,1,4,5,6
Sum db ?
Data ends
并请验证SUM的正确与否。
实验报告要求
写明本次实验内容和实验步骤。
按实验任务的要求,整理出运行正确运行结果,并进行分析。
对本次实验作一个简短的小节。
常用的DEBUG命令:
1、显示内存单元内容的命令D
-D[地址] 显示从指定单元开始的80H个单元的内容。
-D[始地址][末地址] 显示指定范围的内容。
2、检查和修改寄存器内容的命令R
-R 显示CPU内部所有寄存器的内容和全部标志位状态。
-R[寄存器名] 检查和修改指定寄存器内容。
3、运行命令G
-G 从当前CS:IP开始一直执行下去,直到INT 3指令为止。
4、跟踪命令T
-T[=地址] 单步跟踪指令,执行时逐条跟踪,从指定地址开始执行一条指令后停下来,显示所有寄存器的内容及标志位的值。如未指定则从当前CS:IP开始执行。
-T[=地址][N] 多条跟踪,从指定地址开始
5、反汇编命令U
-U[起始地址] 从指定地址开始,反汇编32个字节。若没有指定地址,则以上一个U命令的最后一条指令的下一个单元为起始地址。若未使用过U命令,则从CS:0100H开始。
-U[起始地址][结束地址] 对指定范围内的存储单元进行反汇编。
5、退出DEBUG命令Q
-Q 退出DEBUG,返回DOS