您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 实验一-熟悉汇编语言上机环境
实验一熟悉汇编语言上机环境一、实验目的熟悉在微机上建立、汇编、连接、调试和运行汇编语言程序的全过程。二、实验要求1.仔细阅读本实验教程的第一章和第二章;2.学会使用EDIT建立汇编语言源程序文件;3.学会使用MASM将汇编语言源程序编译为目标程序的两种方法;4.学会使用LINK将目标程序连接为可执行程序的两种方法;5.学会使用DEBUG中的U、D、G命令。三、实验举例【例3.1】编辑、汇编、连接、执行下列程序,观察实验结果。【程序功能】该程序的功能是利用BIOS功能调用,从键盘上接收若干个字符,并将它们的ASCII码与键盘扫描码以十六进制的形式显示出来,当按下Ctrl+C键时,停止程序的执行。【步骤一】用EDIT编辑源程序,并以EXAM1.ASM为文件名存入磁盘。程序清单如下:SSEGSEGMENTSTACKSTKDB80HDUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,SS:SSEGHTOAPROCNEAR;该子程序的功能是将AL内容转换为ASCII码ANDAL,0FHCMPAL,10JCHTOA1ADDAL,07HTOA1:ADDAL,30HRETHTOAENDPBHTOAPROCNEAR;该子程序的功能是将AL内容转换为ASCII码PUSHCXMOVCH,ALMOVCL,04SHRAL,CLCALLHTOAMOVAH,ALMOVAL,CHCALLHTOAPOPCXRETBHTOAENDPDISASCPROCNEAR;该子程序的功能是在光标处显示AL中的字符PUSHAXMOVAH,14INT10HPOPAXRETDISASCENDPDISALPROCNEAR;该子程序的功能是显示AL中的内容PUSHAXCALLBHTOAXCHGAH,ALCALLDISASCMOVAL,AHCALLDISASCPOPAXRETDISALENDPBIOS:PUSHDS;主程序XORAX,AXPUSHAXAGAIN:MOVAH,0INT16HPUSHAXCALLDISALMOVAL,'-'CALLDISASCMOVAL,AHCALLDISALMOVAL,''CALLDISASCPOPAXCMPAL,03HJNZAGAINMOVAH,4CHINT21HCSEGENDSENDBIOS源程序输入完成后,按Alt+F键,用↑、↓键头选择SaveAs项保存文件,在出现对话框时输入EXAM1.ASM即可。【步骤二】用宏汇编程序MASM对汇编语言源程序EXAM1.ASM进行汇编,生成文件名为EXAM1.OBJ的目标程序。操作如下:C:\MASMEXAM1;↙屏幕显示如下信息:MicrosoftRMacroAssemblerVersion5.00CopyrightCMicrosoftCorp1981-1985,1987.Allrightsreserved.EXAM1.ASM(10):errorA2009:Symbolnotdefined:HTOA1EXAM1.ASM(12):errorA2105:Expected:instructionordirective50542+449842Bytessymbolspacefree0WarningErrors2SevereErrorsC:\上述信息提示在EXAM1.ASM文件的第10、12行分别有2个语法错误。这时应返回到第一步,编辑源程序状态,找出有错误的程序行,修改有错误的语句。上述程序中第10行并没有错误,只因第12行HOTA1标号后面遗漏了“:”号,导致第10行的错误,将第12行语句的标号HTOA1后加一个“:”号即可。然后保存EXAM1.ASM文件,重新进行汇编,直至没有错误信息提示为止,方可进行下一步操作。再次进行汇编,屏幕显示如下信息:MicrosoftRMacroAssemblerVersion5.00CopyrightCMicrosoftCorp1981-1985,1987.Allrightsreserved.EXAM1.ASM(10):errorA2009:Symbolnotdefined:HTOA1EXAM1.ASM(12):errorA2105:Expected:instructionordirective50542+449842Bytessymbolspacefree0WarningErrors0SevereErrorsC:\没有产生错误信息,表明汇编通过,可以进行下一步操作。【步骤三】用LINK对目标文件进行连接,生成文件名为EXAM1.EXE的可执行文件。操作如下:C:\LINKEXAM1;↙屏幕显示如下信息:Microsoft(R)Segmented-ExecutableLinkerVersion5.13Copyright(C)MicrosoftCorp1984-1991.Allrightsreserved.LINK:fatalerrorL1093:EXAM1.OBJ:objectnotfoundC:\一般情况下,连接过程不会出现错误,但是,如果程序中没有设置堆栈段,或设置了堆栈段,但未定组合类型语句STACK,连接程序LINK也会提示警告信息,但不影响程序的执行,可以忽略。本程序出现的错误是没有找到EXAM1.OBJ文件,就是说在汇编过程中有错误产生,导致汇编程序没有通过,没有生成EXAM1.OBJ文件。在这种情况下必须回到编辑状态改正程序中的错误语句,然后重新进行汇编,直到没有错误信息提示,并且生成了EXAM1.OBJ文件,方可再次进行连接操作。再次进行连接,屏幕显示如下信息:Microsoft(R)Segmented-ExecutableLinkerVersion5.13Copyright(C)MicrosoftCorp1984-1991.Allrightsreserved.C:\当连接过程中没有错误信息提示,表明连接成功,可进行下一步操作。【步骤四】执行EXAM1.EXE程序。因本例题是从键盘输入字符,然后在屏幕上显示它的ASCII码和键盘扫描码,所以在DOS提示符下直接键入文件名EXAM1并按回车键即可。当用户输入一个字符后,屏幕即显示它的ASCII和它的键盘扫描码。操作如下:C:\EXAM1↙61-1E62-3063-2E64-2065-12以上输入的是字母ABCDE,显示的分别是它们的ASCII码和键盘扫描码。至此该程序调试完成。四、实验内容1.编辑、汇编、连接、执行下列程序。观察程序的执行结果,并用DEUBG中的E命令修改DATA1和DATA2中的原始数据,重复计算两数之和。该程序的功能是:计算存放在DATA1和DATA2单元中的两个数据之和,结果在屏幕上显示出来。参考程序如下:DSEGSEGMENTDATA1DB35HDATA2DB29HDSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXMOVAL,DATA1ADDAL,DATA2PUSHAXMOVCL,4SHRAL,CLADDAL,30HCMPAL,39HJBEOK1ADDAL,07HOK1:MOVDL,ALMOVAH,02HINT21HPOPAXANDAL,0FHADDAL,30HCMPAL,39HJBEOK2ADDAL,07HOK2:MOVDL,ALMOVAH,02HINT21HMOVAH,4CHINT21HCSEGENDSENDSTART2.将实验内容1修改成计算DATA1和DATA2中数据之差,并用DEBUG中的E命令修改DATA1和DATA2中的原始数据,重复计算两数之差。参考程序请读者参照实验内容1的程序自行修改。3.编辑、汇编、连接下列程序,并在DEBUG下执行该程序,观察存放在存储单元中的结果数据。该程序的功能是:求5!,计算结果存放在SUM单元中。参考程序如下:DSEGSEGMENTNUMDB5SUMDW?DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXMOVCL,NUMMOVAL,1MOVBL,1DATA:MULBLINCBLLOOPDATAMOVSUM,ALMOVAH,4CHINT21HCSEGENDSENDSTART五、实验报告要求1.按照上机实验的操作顺序写出操作步骤;2.写出每个程序的运行结果;3.总结实验过程中遇到的问题及解决方法。
本文标题:实验一-熟悉汇编语言上机环境
链接地址:https://www.777doc.com/doc-4712085 .html