汇编语言的编程步骤与调试方法.docx
- 文档编号:15855093
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:11
- 大小:157.57KB
汇编语言的编程步骤与调试方法.docx
《汇编语言的编程步骤与调试方法.docx》由会员分享,可在线阅读,更多相关《汇编语言的编程步骤与调试方法.docx(11页珍藏版)》请在冰点文库上搜索。
汇编语言的编程步骤与调试方法
汇编语言的编程步骤与调试方法
一、汇编源程序的建立
1.使用工具
(1)EDIT,记事本等文本编辑软件,编辑源程序,保存为.asm文件;
(2)ASM,MASM汇编程序,对源程序进行汇编,生成.obj文件-精品文档,你值得期待
目标文件,以及调试用.LST-列表文件和.CRF-交叉引用表;
(3)Link连接程序,对使用的目标文件和库文件进行连接,生成.exe文件,同时调试用.map-地址映像文件;
如果源程序无语法错误,上述三步将生成可运行的.exe文件,如果运行结果无误,则完成对汇编程序的编程,如果运行后结果存在错误,需要进行调试。
(4)Debug调试程序,对.exe文件进行调试,修改,直到程序正确。
图3目标程序生成步骤图
2.编程过程
(1)用文本编辑软件,编写扩展名为.asm的源文程序文件。
(2)用汇编程序对编好的源文件进行汇编。
命令行:
masm[*.asm]↙
如果源文件中存在语法错误,则汇编程序将指出错误类型及位置,可根据这些信息重新编辑源文件,直至无语法错误,汇编后,将生成指定名称的目标文件.obj。
使用MASM50汇编程序进行汇编,输入命令行masm或者masm*.asm后,根据提示,输入文件名,在汇编没有错误的情况下,如屏幕所示:
汇编程序可生成三个文件,*.obj,*.lst和*.crf。
*.obj-目标文件,用于连接生成可执行文件;
*.lst-列表文件(可选),汇编语言汇编的机器语言与汇编语言对照表,可用于调试;
*.crf-交叉引用文件(可选),给出了用户定义的所有符号和对每个符号定义、引用的行号。
(3)目标文件的连接
命令行:
link[*.obj][*.obj][*.lib]↙
连接程序,将多个目标程序及库文件,连接生成可执行的*.exe文件,同时可选择生成*.map文件。
*.map-地址映像文件,给出内存地址分配的有关信息。
下图所示屏幕,为Link连接两个目标文件,没有错误的情况下,生成*.exe文件。
(4)执行程序
执行*.exe文件,观察程序运行结果,如果存在错误,需要进行调试。
调试工具DEBUG是针对汇编语言程序设计的一种调试工具,熟练使用DEBUG有助于汇编语言程序员对于逻辑错误的调试。
二、汇编程序的调试
1.调试方法
DEBUG工具的调试文件为可执行文件*.exe,在命令行窗口或者DOS环境下,执行DEBUG命令:
命令行Debug[*.exe]↙
DEBUG程序如果正常启动,提示符显示为“_”。
出现“_”提示符后,根据调试的需要,输入正确的Debug命令,根据显示内容,修改源文件。
2.常用DEBUG命令
(1)D命令-内存显示命令
命令格式格式1:
D[起始地址]↙
格式2:
D[起始地址][结束地址|L字节数]↙
调试程序的过程中,可利用该命令可以察看指定范围的内存单元的内容,以确定对内存单元的修改是否正确。
可以通过命令指定显示的范围(格式2),在不指定显示长度的情况下(格式1),将显示从起始地址开始128个字节的内容,如果只写D,则将从上一个D命令显示结束的位置开始显示128个字节。
在内存显示过程中,可以通过“Ctrl+S”键暂停,按任意键可继续显示,以防显示过快,来不及察看,另外可以通过“Ctrl+S”中止该命令的执行。
(2)E命令-数据编辑命令
命令格式格式1:
E[起始地址][列表]↙
格式2:
E[起始地址]↙
调试过程中,为了进行程序测试,需要改变内存或者寄存器的数据,此时利用DEBUG的E命令可以非常方便的进行修改。
E命令可以使用一连串的数据对内存连续地址单元进行修改,此时使用格式1,也可以修改某个地址单元的内容后,按“空格”键,继续修改高地址单元内容。
使用E命令时,可以同时配合使用D命令,以确定是否正确的完成了对内存单元的修改。
(3)U命令-反汇编命令
命令格式:
U[起始地址][结束地址]
调试过程中,可以利用U命令将目标程序反汇编为汇编程序,以观察汇编指令的存放位置,汇编指令的正确与否,对于无源码的目标程序,还可以利用反汇编获取目标程序的源码。
(4)G命令-运行程序命令
命令格式:
G[=起始地址][第一断点地址][第二断点地址]….
调试过程中,可以利用G命令运行程序,观察结果的正确性,或者设置断点,利用G命令观察程序运行到某一位置是否正确,G命令最多可以设置10个断点,当程序运行置断点时,停止执行,并显示当前所有寄存器和标志位的内容,以及下一条将要执行的指令。
如果G命令无起始地址,则从当前CS:
IP内容为开始运行。
(5)T命令-单步执行命令
命令格式格式1:
T[=地址]
格式2:
T[=地址][执行指令的条数]
调试过程中,可以利用该指令单步执行,从指定地址开始(如果不指定,则从CS:
IP开始),执行一条指令(格式1)或者执行指定条数的指令(格式2)后,停止执行,并显示当前所有寄存器和标志位的内容。
(6)R命令-寄存器访问命令
命令格式格式1:
R
格式2:
R寄存器名称
一般汇编程序中,会频繁的使用寄存器,使用R命令,可以在调试程序的过程中方便的进行寄存器内容的察看。
如果不指定寄存器名称(格式1),则显示所有寄存器和标志位内容;可以指定需要察看的寄存器的名称(格式2),只显示察看寄存器的内容。
(7)Q命令-Debug退出命令
命令格式Q
Debug程序使用结束后,使用该命令退出Debug。
3.Debug使用举例
右边所示的汇编源程序EX.asm,在命令行窗口中输入下面命令行:
MASMEX.asm↙
对EX.asm文件进行汇编,如果没有语法错误,则生成EX.obj目标文件。
输入下面命令行:
LINKEX.obj↙
对目标文件进行连接,连接后得到可执行文件EX.exe,使用Debug对该程序进行调试。
(1)U-反汇编
对EX.exe反汇编后,得到代码段地址和指令的对应图如下图所示。
从反汇编的结果,可以得到指令在代码段的偏移地址,常与T命令和G命令联合使用,使程序运行到固定的位置,查看结果。
同时,可以从反汇编代码中看出,变量会被汇编为直接寻址方式,使用变量在数据段内的有效地址表示。
(2)T-单步
每按一下T,执行一步,屏幕上显示执行指令后,通用寄存器、段寄存器和标志位的状态,下一条指令,以及指令中操作的存储器寻址方式对应的内存单元的内容。
(3)G-执行
根据反汇编的情况,G断点常设置在正常返回DOS调用之前,即MOVAH,4CH,执行后,可以通过查看寄存器内容,或者D命令查看内存地址单元的内容,检查程序的运行是否正常。
(4)D-查看存储器内容
查看数据段内容,屏幕上会给出128字节存储单元的内容,每行为顺序的16个字节。
因此可以根据定义的数据段中,变量的偏移量,查看运行结果。
(5)E-修改存储单元内容
在调试程序的过程中,如果要修改变量的值,可以使用E命令。
如下图所示,通过E命令修改了程序变量X和Y的值,而不需要修改程序,因此E命令为程序调试提供了方便。
季节中的花开花落,都有自己的命运与节奏,岁月如歌的谱曲与纳词,一定是你。
人生不如意十之八九,有些东西,你越是在意,越会失去。
一个人的生活,快乐与否,不是地位,不是财富,不是美貌,不是名气,而是心境。
有时候极度的委屈,想脆弱一下,想找个踏实的肩膀依靠,可是,人生沧海,那个踏实肩膀的人,也要食人间烟火,也要面对自己的不堪与无奈。
岁月告诉我:
当生活刁难,命运困苦,你的内心必需单枪匹马,沉着应战。
有时候真想躲起来,把手机关闭,断了所有的联系,可是,那又怎样,该面对的问题,依旧要面对。
与其逃避,不如接纳;与其怨天尤人,不如积极主动去解决。
岁月告诉我:
美好的人生,一半要争,一半要随。
有时候想拼命的攀登,但总是力不从心。
可是,每个人境况是不同的,不要拿别人的标准,来塑造自己的人生。
太多的失望,太多的落空,纯属生活的常态。
岁月告诉我:
挫败,总会袭人,并且,让你承受,但也,负责让你成长。
人生漫长,却又苦短,幽长的路途充满险阻,谁不曾迷失,谁不曾茫然,谁不曾煎熬?
多少美好,毁在了一意孤行的偏执。
好也罢,坏也罢,人生的路,必须自己走过,才能感觉脚上的泡和踏过的坑。
因为懂得,知分寸;因为珍惜,懂进退。
最重要的是,与世界言和,不再为难自己和别人。
《菜根谭》中说:
花看半开,酒饮微醉。
就是说,做事不必完美,享乐不可享尽,这是一种含苞待放的人生状态。
即使是最美的月亮,也会有盈亏的自然之道。
否则便是过犹不及,弄巧成拙。
心灵松绑了,活着才自由。
半生已过,走走停停,看透了生活,选择了顺流的方式,行走。
流水今日,明月前身。
感谢每一粒种子,每一缕清风,每一个阳光的日子,于时光的碎屑中,静品一盏流年的香茗。
撕开浮云的遮掩,其实,每个人心中都有各自的山水,都有一段难捱的时光,好在,总有一天,你的淡然低调,你的暗自努力,你的理性豁达,终将点燃你的整个世界,让故事的结局,美好而温柔。
苏轼在《水调歌头》里写道:
人有悲欢离合,月有阴晴圆缺,此事古难全。
是的,层次越高的人,越懂得,人生本就不是尽善尽美,也正因为有了缺憾,才显得是那么的多姿多彩。
心情平和,与是非渐行渐远,再多的兵荒马乱,也抵不过时光的洪流,唯有日常才惊天动地。
夫切菜,妻拌菜,菜菜交缠,洒在热腾腾的面条上,剥头蒜就着,哧啦哧啦的,心里爽透了。
这世间最美的,不就是这样的烟火么。
人生,是一个苏醒的过程。
一首经典,低徊吟唱,年少不知歌者意,再听已是曲中人。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 编程 步骤 调试 方法