《汇编语言实验》教学大纲
Experiments of Assembly Language
课程代码:XF002018学时:32学分:1
适用专业:计算机 课程性质:选修
撰稿人:吴秋兰审定人:
一、实验课的性质与任务
《汇编语言》和《汇编语言实验》均是计算机科学与技术专业的重要专业基础课,两者密切配合。《汇编语言实验》的任务是使学生通过上机编写、调试程序,加深对理论知识的理解;培养学生的程序设计能力和程序分析能力,为深入学习后续课程和从事计算机硬件、软件开发打下坚实的基础。
二、实验目的与要求
使学生通过上机编写、调试程序,掌握汇编语言上机过程;掌握汇编语言程序的基本结构、设计方法和基本技能,提高程序设计水平。
三、实验项目设置情况
序号 | 实验项目名称 | 学时 | 开出要求 | 实验项目类型 |
必做 | 选做 | 基础型 | 综合设计 | 研究创新 |
演示 | 验证 |
1 | 汇编语言上机过程 | 4 | √ |
| | √ | | |
2 | 顺序结构程序设计 | 4 | √ |
|
| √ |
|
|
3 | 分支结构程序设计 | 6 | √ | | | √ | | |
4 | 循环结构程序设计 | 6 | √ | | | √ | | |
5 | 子程序设计 | 4 | √ | | | √ | | |
6 | DOS功能调用应用 | 4 | √ | | | √ | | |
7 | 综合程序设计 | 4 | √ | | | | √ | √ |
四、各实验项目教学内容
实验项目一:汇编语言上机过程4学时
(一)实验目的要求
1、掌握汇编语言上机过程。
2、熟悉debug环境,掌握常用的debug命令。
(二)实验材料和仪器设备
计算机
(三)实验内容
1、练习常用的DEBUG命令
(1)进入DEBUG,用D命令显示从2000H开始的内存单元的内容,用E命令修改2000H~2003H四个内存单元中的内容。
(2)用A命令在内存100H处键入下列内容:
MOVAX,1234
MOVBX,5678
XCHGAX,BX
MOVAH,35
MOVAL,48
MOVDX,75AB
XCHGAX,DX
①用U命令进行反汇编。
②用T命令逐条运行这些指令,每运行一行记录有关寄存器及IP的变化情况。并注意标志位有无变化。
(3)编写程序将两个数0102H和0304H存放在2000H~2003H存储单元处,进行求和运算,结果送AX。
用A命令将源程序写入内存,用G命令执行程序,用R命令查看结果后,用U命令反汇编,用T命令看程序单步执行过程及中间结果,用Q命令退出DEBUG。
2、练习汇编语言上机过程
编写源程序求绝对值,该数存放在BUF字单元中。
(1)用EDIT.COM建立ASM文件
(2)用MASM.EXE产生OBJ文件
(3)用LINK.EXE产生EXE文件
(4)用DEBUG.COM调试程序 ,记录结果。
实验项目二:顺序结构程序设计4学时
(一)实验目的
1、进一步掌握汇编语言上机过程。
2、进一步掌握常用的debug命令。
3、掌握顺序结构的程序设计方法。
(二)实验材料和仪器设备
计算机
(三)实验内容
1、已知某班学生的英语成绩按学号(从1开始)从小到大的顺序排列在TAB表中,要查的学生的学号放在NO所指向的存储单元中。编写程序查找学号为10的学生的成绩。查表结果放在ENGLISH所指向的存储单元中。
2、试编写程序计算以下表达式的值。
w=(v-(x*y+z-540))/x
式中x、y、z、v均为有符号字数据。设x、y、z、v的值存放在字变量X、Y、Z、V中,结果存放在双字变量W之中。
实验项目三:分支结构程序设计6学时
(一)实验目的
1、掌握转移指令的应用。
2、掌握分支结构程序的设计方法。
(二)实验材料和仪器设备
计算机
(三)实验内容
1、已知在X单元中存放着一个8位无符号数,判断该数的奇偶性。如是奇数存入N1单元,否则存入N2单元。
2、在以BUF为首址的存储单元,存放6个8位无符号数,求出其中大于零的数的个数,并将结果存入字节单元RESU中。
3、设在A、B、C三个字节单元中分别存放三个有符号数,如果三个数都不为0,则求出三个数的和放到D单元中;如果其中有一个为0,则将其它两单元也清0。
4、设x为带符号字节数,放在X所指向的存储单元中,编程求下列分段函数的值,结果放到Y所指向的存储单元。
3x-8( x> 10)
y =x(10 >= x >= -10)
2x+10(x< -10)
实验项目四:循环结构程序设计6学时
(一)实验目的
1、掌握循环指令的用法。
2、掌握循环结构程序的设计方法。
(二)实验材料和仪器设备
计算机
(三)实验内容
1、从STR开始存放一个字符串,统计串中字符A的个数,存放在RESU字节单元。
2、从BUF开始存放若干带符号字节数据,将它们相加并将结果(超过一个字节范围)存放到字单元SUM中。
3、将两个多字节压缩BCD码相加,假定两个压缩BCD码分别从BCD1、BCD2开始存放,结果从BCD3开始存放。
4、设从STRING开始存放一个以#为结束标志的字符串,把字符串中的字符分类,数字送入NUM开始的内存区,字母送入CHAR开始的内存区,其它字符存到OTHER开始的内存区。
5、在以BUF为首址的字节存储区中有N个有符号数,编写程序将它们按小到大的顺序排列在BUF存储区中。
实验项目五:子程序设计4学时
(一)实验目的
1、掌握子程序的概念和设计方法。
2、掌握编写子程序说明文件的方法。
3、掌握入口参数和出口参数的设置方法。
(二)实验材料和仪器设备
计算机
(三)实验内容
1、编写子程序,将字节单元中的2进制数转换成10进制数输出。
2、编写求16位数的绝对值的子程序,并在DEBUG中调试、验证。
3、编写子程序,将三个8位符号数中的最大值存入MAX单元,写出子程序调用说明文件。
4、从STR开始存放一个字符串,统计串中字符A的个数,存放在RESU字节单元,要求用堆栈传递参数。
实验项目六:DOS功能调用4学时
(一)实验目的
掌握DOS功能调用的概念和方法。
(二)实验材料和仪器设备
计算机
(三)实验内容
1、编程,从键盘接收一位10进制数,以二进制形式显示输出。
2、利用DOS的功能调用,在显示器上显示“Who are you?”,然后接收你的名字输出在屏幕上。
3、从键盘接收20个字符存入某一缓冲区,按ENTER之后显示这些字符。
实验项目七:综合程序设计4学时
(一)实验目的
掌握综合程序设计方法。
(二)实验材料和仪器设备
计算机
(三)实验内容
1、在以BUF为首址的字节存储区中有N个有符号数,编写程序将它们按大到小的顺序排列在BUF存储区中。
2、在以TABLE开始的内存区存放着0~9的ASC码,编写程序,通过键盘输入0~9之间的任意一个数,从内存中查出该数的ASC码,把查出的结果显示在屏幕上。(要求:键盘输入通过调用子程序实现。)
3、设从内存单元BUF开始存放一个字符串“C1A23DCACA”,编写完整的源程序统计字符串中大写字母的个数,并以16进制的形式显示在屏幕上(大写字母的个数不超过一个字节的范围)。(要求:结果显示通过调用子程序实现)
五、实验报告要求
实验完毕,根据预习和实验中的现象等,完成实验报告。实验报告包括以下内容:
实验(编号)实验名称
(一)实验目的
(二)实验内容
(三)流程图和源程序
画出程序流程图,写出源程序。
(四)问题讨论
写出实验过程中遇到的主要问题及解决办法。
六、课程考核方式及成绩评定
(一)考核方式
根据学生实验预习、完成的情况、实验报告的质量及平时的学习态度等全面评定成绩。
(二)课程成绩评定办法
实验课成绩单独按优秀、良好、中等、及格和不及格五级记录考试成绩。学生的实验成绩应以平时考查为主,实际操作实验的优劣作为主要考核依据。
评定各级成绩时,可参考以下标准:
(1)优秀
能正确理解实验的目的要求,能独立、顺利而正确地完成各项实验操作,操作规范,会分析和处理实验中遇到的问题,能掌握所学的各项实验技能,能较好地按时完成实验报告及其它各项实验作业,有一定创造精神和能力。有良好的实验室工作作风和习惯。能认真遵守各项规章制度。
(2)良好
能理解实验的目的和要求,能认真而正确地完成各项实验操作,操作规范,能分析和处理实验中遇到的一些问题。能掌握大部分所学实验技能。能较好地按时完成实验报告和其它实验作业。有较好的实验习惯和工作作风。能认真遵守各项规章制度。
(3)中等
能理解实验目的要求,能认真努力进行各项实验操作,但技巧较差,操作较规范,。能分析和处理实验中的问题,掌握实验技能的大部分。能完成各项实验作业和报告。工作作风较好。能认真遵守各项规章制度。
(4)及格
基本能理解实验目的要求,基本能进行各项实验操作,但实验技能差,操作不够规范。遇到问题常常缺乏解决的办法,在别人启发下能作些简单处理,但效果不理想。能完成实验报告和其它实验作业,能遵守实验室各项规章制度。
(5)不及格
不能理解实验要求,不具备实验技能。不预习实验,不能独立完成实验,操作不规范。不按时上交实验报告,遇到问题时说不明原因,在教师指导下也较难完成各项实验作业。不遵守实验室规章制度。
七、实验应配套的主要仪器设备及台(套)数(以一个实验教学班为标准)
微型计算机(30台)。
附:教学参考资料
1、选用的教材:
徐建民,《汇编语言程序设计》,电子工业出版社出版,2010年6月,第三版。
2、主要参考书:
[1]沈美明,IBM-PC汇编语言程序设计实验教程,清华大学出版社,2012年6月,第二版。
[2]沈美明,《IBM—PC汇编语言程序设计》,清华大学出版社,2012年6月,第二版。