时间:2009-08-13 点击: 次 来源:本站原创 作者:佚名 - 小 + 大
汇编语言程序设计编程源代码操作性实验Debug Emu8086 MASM的使用|汇编语言实验指导|汇编程序|汇编语言程序设计指令|汇编调试器的使用| 实验内容: 1. 实验/作业题目: Debug、Emu8086、MASM的使用 2.实验/作业课时:2课时 3.实验过程(包括实验环境、实验内容的描述、完成实验要求的知识或技能): 试验环境:Windos 2000、Debug程序、Emu8086程序、MASM 6.15程序 实验内容的描述:汇编调试器的使用 完成实验要求的知识或技能:汇编调试器的使用 4.程序结构(程序中的函数调用关系图) 无函数调用,只有主过程 5.算法描述、流程图或操作步骤: 无算法描述 流程图:若图片无法显示请联系站长QQ3249114 习题2.36: 习题2.37: 操作步骤: Debug: 1:使用-e命令写入数据 2:使用-a命令写入代码,跳转语句先设定为原地跳转,记下行号,以便以后更改 3:全部代码输入完毕后,修正代码中的所有跳转语句 4:使用-r命令检查CS和IP寄存器的值,将其修正到正确的函数入口 5:使用-t命令单步执行程序或使用-g命令直接运行 Emu8086: 1:输入程序代码 2:运行或单步运行 MASM 6.15: 1:建立源代码的纯文本文件 2:使用命令行方式,Make32和Make16命令建立可执行文件 3:运行(没办法单步运行) 6.实验数据和实验结果(用屏幕图形表示,可另加附页): 习题2.36输入数据: 第一次:u 第二次:7 习题2.36输出结果图:若图片无法显示请联系站长QQ3249114 习题2.37输入数据:ABCDabcd1234?!@ 习题2.37输出结果图: 7.改进建议: 我的程序和老师上课给的有几点不同:一是在建立输入缓冲区时,将全部的内存单元初始化为’$’,免得后面还要专门在字符串后面加这个结束符;二是在字符串的检索过程当中考虑了非字母的字符的问题,并加入了跳出机制,不至于每一次输入即时输入几个字符都要检索缓冲区内的所有内容。算是改进吧。 Debug,我觉得还是比较难操作的,主要是它不支持软指令和标识符,输入源程序特别麻烦,相对的Emu8086简单的多。在用Debug进行调试的过程当中,我觉得罪应该注意的是要记得在运行前修正CS和IP寄存器的值,我有因为疏忽出现了程序狂飙不受控制的情况,今后我会注意的。至于Emu8086,好像不支持.exit的关闭进程的方式,我都改为中断关闭的方式了,只是有点搞不清.exit的方式应该在什么情况下使用。MASM我主要是试着改成了32位汇编程序,因为用了很长时间比较熟悉了,没出现什么大问题,但由于PC中断对32位不是很支持(比如输入字符串时要从DX寄存器中传递字符串缓冲区的EA地址,但32位汇编的EA是32位数据),所以我使用的是Windows API的控制台操作来代替中断操作。 这次运行的程序,结果和过程上没有太大的问题,但是在输入输出提示上好像还不那么完善,今后的上机中我会注意的。 评分标准 学 风--报告格式规范,文字清晰 观察能力--正确描述和理解需要操作的问题 操作能力--正确输入程序,熟悉编程环境 调试能力--熟练使用调试功能解决程序错误 附源代码 习题2.36(80x86版) .model small 习题2.37(80x86版) .model small |
上一篇:汇编,ASM,80x86,汇编文章,汇编源码,汇编教程,x86,汇编技术
下一篇:俺也汇编一下:EMU8086