资源描述:
《2011年微机原理课程上机实验指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一部分汇编语言程序设计实验实验一汇编语言编程基础汇编语言是一种面向机器的“低级”语言,是计算机能够提供给用户的最快而最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。要真正理解计算机的工作过程,理解计算机程序的执行过程,就必须学习汇编语言。也正是因为如此,汇编语言程序设计是计算机专业和电子,自动控制等相关专业的重要课程。但是,对于刚开始学习汇编语言的学生而言,汇编语言的一些命令非常抽象,很难理解,往往学习了很长时间也编不出满意的程序,更别说自如的应用,以致我们认为汇编语言很难掌握,影
2、响我们学习汇编语言的兴趣。实际上,为了掌握好汇编语言,我们可以从熟悉、使用DEBUG调试工具开始,先来分析和读懂一些与硬件相关的小程序,这也是我们实验一的目的。1.1汇编语言程序的上机步骤以下列源程序为例,先学习汇编语言的上机步骤。文件名为1.asm:DATASEGMENTNUM1DB35,35HNUM2DW35,35HNUM3DB4DUP(34,3DUP(34H))NUM4DB'34AB'NUM5DW'34','AB'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTAR
3、T:MOVAX,DATAMOVDS,AXMOVBX,OFFSETNUM1MOVAL,[BX]MOVBX,OFFSETNUM5MOVAX,[BX]MOVAH,4CHINT21HCODEENDSENDSTART17一.上机步骤汇编语言程序MASM软件由EDIT.COM编辑器,汇编MASM.EXE程序,连接LINK.EXE程序以及DUEBUG.EXE调试程序四个部分组成。汇编语言编制完成后,在计算机上的操作过程就分为四个阶段。1.编辑EDIT.COM首先输入源程序,有两种方法:(1)在记事本里录入,特别注意的是:
4、在保存时文件格式必须选择所有文件,文件后缀名为.ASM,即保存时文件名为XXX.asm。(2)双击MASM软件中的编辑软件EDIT.COM文件框,在EDIT下输入源程序。用ALT+F键打开file菜单,用其中的save功能键将文件存盘。特别注意的是:汇编语言源程序文件的后缀必须为.asm,即保存时文件名为XXX.ASM。图1-1EDIT编辑界面2.用汇编程序MASM.Exe对源程序.ASM文件汇编,生成目标文件.OBJ汇编阶段的任务是把汇编语言源程序翻译成机器代码(称为目标),产生二进制格式的目标文件XXX
5、.OBJ(名字与源程序名相同,只是后缀名不同),如果源程序有语法错误,则汇编过程结束后,MASM.EXE汇编程序会指出源程序中错误的行号和错误的原因,我们可以再用编辑程序EDIT.com来修改源程序中的错误,汇编无错后,方可得到正确的.OBJ目标文件,才能进行下一部的连接LINK。双击MASM软件中的MASM.Exe文件框,在命令行后键入源程序名XXX.asm,(如果源程序与MASM软件在同一路径下,可以只键入文件名,而不要后缀),如以下界面:17图1-2MASM编译1.asm文件无错误时的界面3.连接LI
6、NK.EXE由于汇编所得到的目标代码的存放地址并不是可执行的绝对地址,而是浮动的相对地址,汇编产生的目标文件.OBJ还不能在计算机上运行,需要用连接程序LINK.EXE把目标文件.OBJ文件转换为可执行文件XXX.EXE文件.双击MASM软件中的LINK.Exe文件框,在命令行后键入目标文件名XXX.OBJ(如果源程序,目标文件与MASM软件在同一路径下,可以只键入文件名,而不要后缀),如以下界面:图1-3LINK连接1.OBJ文件界面如果连接没有错误,就会产生一个XXX.EXE的可执行文件,如果.OBJ文
7、件有错误,连接时会指出错误的原因。对于无堆栈警告(warning:nostacksegment)的提示,可以不予理睬,它是由于我们在源程序中没有定义堆栈段的原因,对于比较小的程源序和不需要再特别定义堆栈段的源程序,我们可以不定义堆栈段,它并不影响程序的正确执行。反而,如果连接时有其他的错误,则要检查并修改源程序XXX.ASM,然后再重新汇编MASM.EXE,连接link.exe的步骤,直到得到正确的XXX.EXE文件为止。174.运行和调试DEBUG.exe运行可执行文件,即双击XXX.EXE文件框即可,或
8、在DOS下运行此程序,E:XXX.EXE。1.2熟悉、使用DEBUG调试工具以下重点介绍一些调试命令:以1.asm源程序为例:图1-4运行和调试DEBUG界面1)N命令:用于指定进行读写的磁盘上的文件。命令格式:N[path][filename]如:-n1.exe指定要装载(Load)或写入磁盘(Write)的文件名。2)L命令:将指定的文件装入内存中命令格式:L回车键-l回车键3)反汇编命令U就是将存放在制定