实验一 汇编语言环境的熟悉及Debug的使用(4学时)
实验类别:基本实验
实验目的:熟悉汇编语言系统环境,利用Debugger调试工具来调试汇编语言程序。
实验内容:熟悉汇编语言系统环境,通过单的程序的调试,掌握MASM, LINK, Debugger的使用。
实验步骤:
1. 将MASM文件夹复制到D:盘根目录下。
2. 开始——〉所有程序——〉附件——〉命令提示符
3. C:\\Documents and Settings\ 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
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务