试验一--汇编语言环境的熟悉及Debug的使用上机指导

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档