您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 汇编语言程序设计实验指导书-计算机
汇编语言程序设计实验指导书董海燕编江苏科技大学电子信息学院2006-8-231前言课程名称:汇编语言程序设计适用对象:计算机科学与技术专业本科学时学分:共48学时,3学分,其中实验时数10学时。汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的惟一语言。因而,对程序的存储空间和运行时间要求较高的一些实际任务,一般都使用汇编语言进行编程处理;至于很多实时性强、需要直接控制硬件的应用场合,则更是非用汇编语言不可了。汇编语言程序设计是高等院校计算机科学与技术专业“汇编语言程序设计”必修课,具有十分重要的专业基础地位。实践环节是帮助学生加深认识和理解理论教学知识的重要途径。学生应该通过大量的上机实验熟悉8086CPU的指令功能、用途和使用技巧,进而通过循序渐进的程序设计练习,验证各类指令的功能和提高程序设计的能力根据教学大纲的要求以及现有实验设备条件,对本课程的实验部分安排了10学时的上机操作,具体分为4次进行,其安排如下:实验一:分支程序设计实验二:循环程序设计实验三:子程序与DOS调用实验四:常用程序设计和中断为了让学生能够比较好的完成实验,在做实验前需要做下述准备:1.实验前的准备工作①认真复习理论教学内容及相关资料。②认真查询相关实验资料,做好预习准备。2.实验时应注意的事项①按时参加上机实习,不得无故迟到、早退。②遵守机房管理制度和实验操作规则。③上机者在上机规定的时间内,不能从事与实验无关的内容。④独立完成实验,严禁抄袭他人成果。⑤按时提交实验报告。3.实验报告要求①实验课题②实验设备及工具③实验目的2④实验过程和结果分析通过实验,学生应达到以下几点目的:①掌握汇编语言基本程序结构,熟悉计算机指令和汇编语言语句的编写。②熟悉汇编语言的上机过程和debug调试工具的使用方法。③掌握汇编语言简单分支程序设计、循环程序设计、子程序设计、DOS中断程序设计。熟练地使用汇编语言编写程序,完成各项任务。④根据所做实验,完成实验总结报告1实验一、分支程序设计(2课时)一、实验目的1、学习使用汇编语言、连接程序对汇编语言源程序进行汇编、链接装配操作。2、学习使用调试程序debug对可执行文件.exe进行调试运行。3、训练分支程序的编制,逐步熟悉二元选择、多元选择等程序描述方法,加深对程序控制类指令的结构和功能的理解。4、掌握调试分支程序的基本方法,以了解程序的静态结构和动态执行情况的差异性。二、实验设备1、硬件:IBMPC及兼容机2、软件:操作系统Msdos/Windows98/Windows2000/WindowsXP编辑软件:edit、记事本汇编语言程序包:masm5.0以上(包括masm、link)三、实验内容题目A:设平面上有一点p直角坐标(x,y),试编制完成下列操作的程序如点p在第i象限,则K单元←i(1,2,3,4)如点p在坐标轴上,则K单元←0题目B:编制程序求A、B、C三个有符号数的中间数。(A、B、C为字节单元)四、实验步骤1、编辑源程序,建立一个以后缀为.ASM的文件.2、汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。3、连接目标程序,产生可执行程序。4、DEBUG调试可执行程序,记录程序运行结果。5、在操作系统状态下,运行程序,并记录程序运行结果。五、实验总结1、实验中遇到哪些问题?分析主要问题的出错原因及解决方法。2、本次实验有何收获和体会。3、有何改进意见及建议。2实验二、循环程序设计(2课时)一、实验目的1、训练循环程序的编制和调试,提高在程序中组织循环的能力,进一步掌握循环的控制方法;加深对使用循环指令和转移指令控制循环的理解。2、完成文件的建立、汇编、连接及调试的全部操作过程。3、掌握循环程序调试的基本方法及查错、排错的方法。4、上机前要求写好被调试程序的程序文本,并进行静态调试,然后拟定好调试计划和上机操作步骤。二、实验设备1、硬件:IBMPC及兼容机2、软件:操作系统Msdos/Windows98/Windows2000/WindowsXP编辑软件:edit、记事本汇编语言程序包:masm5.0(包括masm、link)三、实验内容题目A设有N个学生的某科成绩(百分制),已按学号的次序存放在以STUD为首址的字单元数组中,现要求按成绩的高低记入名次,并把名次填入成绩所在的字单元的高字节中。字单元的格式为题目B:已知内存array单元开始连续存放着若干非零字数据。编写程序求这些数据中出现次数最多的数据。将出现的最多的次数和数据分别存入numb和datam单元。四、实验步骤1、编辑源程序,建立一个以后缀为.ASM的文件.2、汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。3、连接目标程序,产生可执行程序。4、DEBUG调试可执行程序,记录程序运行结果。5、在操作系统状态下,运行程序,并记录程序运行结果。五、实验总结1、实验中遇到哪些问题?分析主要问题的出错原因及解决方法。2、本次实验有何收获和体会。3、有何改进意见及建议。名次成绩3实验三、子程序设计与DOS调用(2课时)一、实验目的1、训练子程序;调用程序以及DOS功能调用程序的编制,进一步熟悉和灵活使用系统功能调用,培养根据具体情况合理划分程序模块的能力2、掌握主、子程序之间的调用关系,联结方法,提高使用各种参数传递方法的正确性和灵活性。3、掌握调试主、子程序的基本方法,通过调试进一步理解和加深堆栈在子程序设计中的重要意义的认识4、上机前要求写好被调试程序的程序文本,并进行静态调试,然后拟定好调试计划和上机操作步骤。二、实验设备1、硬件:IBMPC及兼容机2、软件:操作系统Msdos/Windows98/Windows2000/WindowsXP编辑软件:edit、记事本汇编语言程序包:masm5.0(包括masm、link)三、实验内容题目A:试编制一程序,分别对NUM字节单元数组中统计出有多少个20,有多少个5,有多少个2,有多少个1.统计的个数分别放在NUM20、num5、num2、num1单元中。1.程序要求用主程序-子程序的结构形式编制。2.并且传递参数的方式为堆栈方法。题目B:在buffer1为首址的存区中有10个双字节正整数,试从中挑出素数存入buffer2为首址的存区。并将素数的个数存入count单元。1.程序要求用主程序-子程序的结构形式编制。2.并且传递参数的方式为堆栈方法。四、实验步骤1、编辑源程序,建立一个以后缀为.ASM的文件.2、汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。3、连接目标程序,产生可执行程序。4、DEBUG调试可执行程序,记录程序运行结果。5、在操作系统状态下,运行程序,并记录程序运行结果。五、实验总结1、实验中遇到哪些问题?分析主要问题的出错原因及解决方法。2、本次实验有何收获和体会。3、有何改进意见及建议。4实验四、常用程序设计和中断(4课时)一、实验目的1、训练常用程序的编程技巧,如数值计算、代码转换和表格处理等。2、熟悉和掌握中断调用的使用方法3、熟悉串操作指令的功能与应用,掌握其使用方法;学会编写常用的字符串处理程序4、复习巩固文件的建立、汇编、链接,以及静态、动态调试的全部过程,熟练掌握运用调试工具进行排除和差错的方法,进一步提高调试程序的能力。5、上机前要求写好被调试程序的程序文本,并进行静态调试,然后拟定好调试计划和上机操作步骤。二、实验设备1、硬件:IBMPC及兼容机2、软件:操作系统Msdos/Windows98/Windows2000/WindowsXP编辑软件:edit、记事本汇编语言程序包:masm5.0(包括masm、link)三、实验内容本实验包括分支、循环、子程序、输入/输出等各方面内容。题目A:试编制一个比赛得分的程序。7个评委分别给分在10-20分之间的整数,去掉一个最高分,去掉一个最低分,将剩下的5个评分的平均值作为最后得分。程序要求:1.评委的给分(2位十进制)从键盘输入2.最后得分以十进制的形式在屏幕上输出3.最后得分保留1-2位小数4.输入和结果前应该有提示信息题目B:编写两个双字节无符号十进制的加法程序。要求1.两个加数在程序运行时键盘上输入。2.检查键入的十进制数是否正确?错误要报错3.在屏幕上输出两个数的和。4.输入和结果前应该有提示信息四、实验步骤1、编辑源程序,建立一个以后缀为.ASM的文件.2、汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。3、连接目标程序,产生可执行程序。4、DEBUG调试可执行程序,记录程序运行结果。5、在操作系统状态下,运行程序,并记录程序运行结果。五、实验总结1、实验中遇到哪些问题?分析主要问题的出错原因及解决方法。2、本次实验有何收获和体会。3、有何改进意见及建议。5附录附录一ASCII码表编码字符编码字符编码字符编码字符00NUL20SPACE40@60`01SOH21!41A61a02STX22“42B62b03ETX23#43C63c04EOT24$44D64d05ENQ25%45E65e06ACK26&46F66f07BEL27‘47G67g08BS28(48H68h09HT29)49I69i0ALF2A*4AJ6Aj0BVT2B+4BK6Bk0CFF2C,4CL6Cl0DCR2D-4DM6Dm0ESO2E.4EN6En0FSI2F/4FO6Fo10DEL30050P70p11DC131151Q71q12DC232252R72r13DC333353S73s14DC434454T74t15NAK35555U75u16SYN36656V76v17ETB37757W77w18CAN38858X78x19EM39959Y79y1ASUB3A:5AZ7Az1BESC3B;5B[7B{1CFS3C5C\7C|1DGS3D=5D]7D}1ERS3E5E^7E~1FUS3F?5F_7FDEL6附录二汇编语言常用出错信息汇编程序在对源程序的汇编过程中,若检查出某语句有语法错误,随时在屏幕上给出出错信息。如操作人员指定的列表文件名(即.LST),汇编程序亦将在列表文件中出错的下面给出出错信息,以便操作人员即时查找错误,给予更正。MASM5.0出错信息格式如下:源程序文件行:WARNING/ERROR错误信息码:错误描述信息其中,错误描述信息码由五个字符组成。第一个是字母A,表示汇编语言程序出错;接着有一个数字指明出错类别:‘2’为严重错误,‘4’为严肃警告,‘5’为建议性警告,最后三位为错误编号。错误编号错误描述0Blocknestingerror嵌套出错。嵌套的过程、段、结构、宏指令或重复块等非正常结束。例如在嵌套语句中有外层的结束语句,而无内层的结束语局1Extracharactersonline一语句行有多余字符,可能是语句中给出的参数太多2Internalerror-Registeralreadydefined这是一个内部错误。如出现该错误,请记下发生错误的条件,并使用ProductAssistanceRequest表与Microsoft公司联系3Unkowntypespecifer未知的类型说明符。例如类型字符拼错,把BYTE写成BIT,NEAR写成NAER等4Redefinitionofsymbol符号重定义。同一标识符在两个位置上定义。在汇编第一遍扫描时,在这个标识符的第二个定义位置上给出这个错误5Symbolismultidefined符号多重定义。同一标识符在两个位置上定义。在汇编第二遍扫描时,每当遇到这个标识符都给出这个错误6Phaseerrorbetweenpasses两次扫描间的遍错。一个标号在二次扫描时得到不同的地址值,就会给出这种错误。若在启动MASM时使用/D任选项,产生第一遍扫描的列表文件,它可帮助你查找这种错误7AlreadyhadELSEclause已有ELSE语句。在一个
本文标题:汇编语言程序设计实验指导书-计算机
链接地址:https://www.777doc.com/doc-4094464 .html