- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言上机过程以及调试
一、预习内容
1. 工具软件MASM、LINK的使用
2. 常用DEBUG命令的使用: G,D,R,T,U,Q
3. 完整程序设计方法的格式。
二、目的要求
1. 掌握常用工具软件MASM、LINK的使用
2. 掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序
3. 掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
三、实验内容
比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match否则显示’No match’.请读程序,并将程序补充完整。
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
实验步骤:
1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在c:\masm615下,注意保存时将文件扩展名改为.asm(如lab1.asm)。
2)打开桌面的“命令提示符” 程序进入dos命令操作,先用cd masm615 命令改变路经,接着用 ”masm + 文件名” (如 masm lab1,这里文件名可以不带扩展名) 对源文件进行汇编,产生.obj文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。
3)用 ”link + 文件名” (如 link lab1) 将.obj文件连接成可执行的.exe文件(lab1.exe)。
4)在DOS状态下直接运行link产生的.exe文件(如 lab1),即在屏幕上显示Match.
5)用debug调试程序,熟悉debug命令的使用:
(1)打 debug lab1.exe 进入debug 控制,显示提示符 _ 。
(2)用命令g(运行命令)执行程序,可得与步骤4相同的结果,也可用T(追踪命令)命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况,并注意标志位有无变化。
(3)用命令u(反汇编命令)检查键入的程序并记录,特别注意左边的机器码和指令地址。如果一条u命令没有显示完全,可以再次输入u命令,该命令会紧接着上一个命令的输出继续显示。
(4)用命令’g+地址’设置断点,如g06,表示将断点设置在代码段的偏移地址为06h的指令前,并执行到该断点前。其中,命令中的地址项可以从上条命令u的运行结果获得。
(5)用命令r(显示和修改某个指定寄存器内容)查看各寄存器的情况。
(6)用命令d(显示内存单元内容的命令),d0查看数据段的情况,0表示从偏移地址0开始,也可以指定其他偏移地址值。
(7)用命令e(修改内存单元内容的命令) ‘e+地址’的方式修改数据区的字符串,其中’地址’指需要修改的数据段内存单元偏移地址,可根据上条d0命令获得。如e29 表示从偏移地址29h开始修改数据。试用此命令将数据段变量string1的内容修改为’Move the cursor forward.’
(8)再次用命令g执行程序,查看执行结果。
(9)用命令q退出debug,如果在上述步骤中碰到异常,可以先用q命令退出后再进入调试。
四、实验报告或作业
1.分析程序,画出程序流程图
2.汇编,连接及调试时产生的错误,其原因及解决办法。
3.思考:
1) 上述实验中用e修改数据段的内容,是否改变原文件lab1.asm的内容?
2) 用单步执行命令t运行程序, 运行到mov ax, 4c00h, int 21h指令后,cs和ip寄存器内容前后有何变化,产生变化的原因是什么?
附:DEBUG 使用:
1.打 DEBUG 进入 DEBUG,显示提示符 _ 。
2.退出DEBUG命令:Q
3.显示内存命令:D 起始地址 结束地址
4.修改内存命令:E 起始地址,连续修改打空格键。打回车键退出E命令。
5.检查寄存器命令:R
标志位显示??? 1????? 0
CF???? CY???? NC
ZF???? ZR???
您可能关注的文档
- 框架施工工艺1.doc
- 桐乡纤维新资料省级高新技巧特色家当基地骨干企业情况表.doc
- 桌前舒展体操1.ppt
- 桌前舒展体操2.ppt
- 桥梁下部结构防腐施工及质量控制.doc
- 桥梁厂社区2009年创立进修型社区任务总结.doc
- 桥梁复习题.doc
- 桥梁完工验收检查法度模范.doc
- 桥梁建设失败的实例.doc
- 桥梁施工测量计划.doc
- 专题17 中国特色社会主义道路(第01期)-中考历史模拟题分项汇编(全国通用)(原卷版).docx
- 专题17 中国特色社会主义道路(第01期)-中考历史模拟题分项汇编(全国通用)(解析版).docx
- 专题20 宾语从句---三年(2024-2024)中考模拟题英语分项汇编(全国通用).docx
- 专题18 民族团结与祖国统一国防建设与外交成就(第01期)-2024年中考历史模拟题分项汇编(原卷版).doc
- 专题18 民族团结与祖国统一国防建设与外交成就(第02期)-2024年中考历史模拟题分项汇编(全国通用)(解析版).docx
- 专题15 中华人民共和国的成立和巩固(第02期)-中考历史模拟题分项汇编(全国通用)(解析版).docx
- 专题12 中华民族的抗日战争(第01期)-中考历史模拟题分项汇编(原卷版).doc
- 专题12 中华民族的抗日战争(第01期)-中考模拟题历史试题分项汇编(解析版).doc
- 专题12 中华民族的抗日战争(第02期)-中考历史模拟题分项汇编(全国通用)(原卷版).docx
- 专题12 中华民族的抗日战争(第02期)-中考历史模拟题分项汇编(全国通用)(解析版).docx
文档评论(0)