实验一

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一调试程序DEBUG练习
(一)实验目的及要求
1.掌握常用工具软件MASM、LINK的使用
2.掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序
3.掌握完整程序设计方法的格式,能正确书写数据段,代码段等。

(二)软硬件平台
1.硬件环境
微型计算机一台
2.软件环境
Windows2003/XP操作系统
任意一种文本编辑器(EDIT、NOTEPAD(记事本)、WORD等),建议使用EDIT或NOTEPAD
汇编程序(MASM.EXE)
连接程序(LINK.EXE)
调试程序(DEBUG.EXE)
(三)实验内容
1.比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’No match’.请读程序,并将程序补充完整。

2.实验步骤:
1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在d:\masm 下,注意保存时文件扩展名应为.asm(如lab1.asm)。

2)用汇编程序masm对源文件进行汇编,产生.obj文件和.LST文件。

若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。

3)用连接程序link将.obj文件连接成可执行的.exe文件(如lab1.exe)。

4)在DOS状态下直接运行link产生的.exe文件(如 lab1),记录实验结果。

5)用debug调试程序,熟悉debug命令的使用:
(1) 键入 debug lab1.exe 进入debug 控制,显示提示符 '-'。

(2) 用命令u检查键入的程序并记录,特别注意左边的机器码和指令地址。

如果一条u命令没有显示完全,可以再次输入u命令,该命令会紧接着上一个命令的输出继续显示。

(3) 用命令’g+地址’在lea s i ,string1指令处设置断点。

其中,命令中的地址项可以从上条命令u的运行结果获得。

(4) 用命令r查看各寄存器的情况并记录。

(5) 用命令d0查看数据段的情况并记录。

(6) 用命令g执行程序并记录。

(7) 用命令‘e+地址’的方式修改数据区的字符串,将数据段变量string1的内容修改为’Move the cursor forward.’。

其中’地址’指需要修改的数据段内存单元偏移地址,可根据d0命令获得。

(8) 重新设置寄存器IP,再次用命令g执行程序,查看执行结果。

(9) 用命令q退出debug,如果在上述步骤中碰到异常,可以先用q命令退出后再进入调试。

(四)程序清单
DSEG SEGMENT
string1 db 'Move the cursor backward.' string2 db 'Move the cursor backward.' mess1 db 'Match.',13,10,'$'
mess2 db 'No match.',13,10,'$'
DSEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG, es:DSEG MAIN PROC FAR
start: mov ax, dseg
mov ds, ax
mov es, ax
lea si ,string1
cld
repz cmpsb
jz match
lea dx,mess2
jmp short disp
match: lea dx,mess1
disp: mov ah,09h
int 21h
mov ax, 4c00h
int 21h
MAIN ENDP
CSEG ENDS
END START。

相关文档
最新文档