汇编语言程序设计的实验环境及实验步骤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言程序设计的实验环境及实验步骤
1、汇编语言源程序编写好以后,必须经过下列几个步骤才能在机器上运行:
(1) 编辑源程序(生成.ASM文件)
(2) 汇编源程序(.ASM → .OBJ)
(3) 连接目标程序(.OBJ → .EXE )
(4) 调试可执行程序(使用调试程序Debug调试生成的.EXE文件)
(5) 运行程序输出结果。
2、Windows环境下的汇编语言集成编程环境的使用
实验一 DOS环境下的汇编语言编程环境使用(基础与验证型)
实验要求和目的
1、掌握汇编语言程序设计的基本方法和技能;
2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序;
3、熟练掌握宏汇编程序MASM的使用;
4、熟练掌握连接程序LINK的使用。
实验涉及的主要知识单元
1、编辑源程序
例如,编写程序,可以在DOS模式下用编辑程序edit.exe建立汇编语言源程序文件Hello.asm,注意文件名的扩展名必须是.asm。
也可以在Windows 2000或者在Windows XP环境下鼠标单击“开始”→“运行”,在“运行”中输入“cmd”进入DOS模式,运行edit软件,例如:C:> edit hello.asm
2、汇编语言源程序的汇编过程
汇编程序调入后,首先显示版本号,然后出现三个提示行。
第一个提示行为:Object filename [HELLO.OBJ]:
询问目标程序文件名,方括号内为机器规定的默认的文件名,通常直接按回车键,表示采用默认的文件名(如上所示)。
第二个提示行为:Source listing [NUL.LST]:
询问是否建立列表文件。若不建立,直接回车;若要建立,可以输入文件名hello再回车。列表文件中同时列出源程序和机器语言程序清单,并给出符号表,有利于程序调试。
第三个提示行为:Cross-reference [NUL.CRF]:
询问是否要建立交叉索引文件。若不建立,则直接回车;若要建立,可以输入文件名。
以上过程也可用masm hello;一步完成。最后的;表示masm命令全部用默认选项,不出现三个提示。
2、目标程序的连接过程
在连接程序调入后,首先显示版本号,然后出现三个提示行。
第一个提示行为:Run File [HELLO.EXE]:
询问要产生的可执行文件的文件名。一般直接回车采用规定的隐含文件名。
第二个提示行为:List File [NUL.MAP]:
询问是否要建立连接映象文件。若不建立,则直接回车;若要建立,则输入文件名再回车。
第三个提示行为:Libraries [.LIB]:
询问是否用到库文件。若无特殊需要,则直接回车即可。
以上过程也可使用link hello;一步完成。最后的;表示link命令全部用默认选项,不出现三个提示。
4、当建立了可执行文件HELLO.EXE后,就可直接在DOS下执行该程序:
5、MASM编译源文件后,用DEBUG调试可执行文件。
在“命令提示符”窗口下执行“DEBUG<文件所在路径+文件名>”指令
实验二 Debug的使用(基础与验证型)
实验要求和目的
熟练掌握动态调试程序DEBUG的使用;
实验涉及的主要知识单元
启动Debug程序:在DOS状态下可以用下面的命令启动Debug程序:
DEBUG [路径文件名.扩展名]
Debug后面的文件名及路径是指被调试程序的文件名及路径,Debug后面的文件必须是程序的可执行文件,其扩展名可以是.EXE 或.COM。在此命令后,DOS将调试程序Debug调入内存,Debug接着将被调程序送入内存。比如:DEBUG 123.EXE
调试程序Debug的主要命令如下:
(一)显示内存单元内容的命令D
格式(1):-D 地址
从指定地址开始,显示128个字节的内容,每一行的左边显示段内偏移地址,接着显示16个单元的内容,最右边区域则显示这一行的16个单元所对应的可显示的字符。若无可显示的字符,则用圆点(小数点)填充。
D命令中的地址可为段内偏移量,也可为段基址和段内偏移量两部分,中间用冒号隔开,如1680:0110,即指段基址为1680H,段内偏移量为0110H。Debug中所显示的数据均为十六进制数,且省去了后面的H 标志。
格式(2):-D 范围
将显示指定地址范围内的内存单元的内容,起始地址可由段基址及段内偏移量两个部分组成,中间用冒号“:”隔开,也可以只指出段内偏移量,而此时的段基址在DS中。这里所说的范围包含起始地址和结束地址。比如–D DS:1000 1020 将显示数据段偏移地址为1000H到1020H的内容。
(二)修改内存单元内容的命令E
格式(1):-E 地址内容表
它的功能是用给定的内容表去代替所指定的内存单元的内容。
例如:
E DS:0110 41 ‘CLOSE’41
该命令执行后,将用列表中的7个字符填入从DS:0110 到DS:0116 的7个存储单元中。
格式(2):-E 地址
它的功能是可以连续地逐个修改内存单元的内容。当屏幕上显示指定单元的地址和内容之后,可采取下列办法:
①若指定单元的内容需要修改,则将新的内容的十六进制数输入,再按空格键,修改便告完成,然后显示下一个存储单元的地址及内容,若需要修改,可进行同样的操作。若某一个单元的内容不需要修改,而操作又要进行下去,则可直接按空格键。
②若需要显示前一个单元的地址和内容,则输入连接号′-′,若要修改,则输入新的内容;若显示前一个单元的地址和内容仍要修改,则可进行同样的操作;若显示的内容不需要修改,则可直接按′-′键,使该操作由高地址向低地址单元连续不断地进行。
③按