还剩7页未读,继续阅读
文本内容:
《汇编语言程序设计》课程教学大纲
一、课程基本信息课程编号84810013课程中文名称汇编语言课程英文名称Assemblerlanguage课程类别专业必修课适用专业计算机科学与技术专业本科生开课学期第5学期总学时60学时理论课48学时实验12学时总学分3先修课程数字逻辑
2、操作系统
3、高级语言程序设计课程简介本课程主要应使学生掌握8086/8088宏汇编语言程序设计的基本方法和技巧能够运用8086/8088宏汇编语言编写应用程序提高学生分析问题、解决问题的能力以及实际动手能力应使学生基本掌握汇编语言程序设计的基本理论方法和技巧正确地使用结构化、模块程序设计技术注意培养学生良好的程序设计风格应使学生比较熟练地使用调试工具DEBUG调试8086/8088汇编语言程序注意提高学生的调试能力
二、课程性质与教学目标《汇编语言程序设计》是计算机科学与技术专业一门重要的基础课是必修的核心课程之一是操作系统和微机原理和接口技术等其它核心课程必要的先修课,而且对于训练学生掌握程序设计技术熟悉上机操作和程序调试技术都有重要作用因此该课程在整个教学计划中占有重要地位本课程的目的和要求是:
1、应使学生掌握8086/8088宏汇编语言程序设计的基本方法和技巧能够运用8086/8088宏汇编语言编写应用程序提高学生分析问题、解决问题的能力以及实际动手能力
2、应使学生基本掌握汇编语言程序设计的基本理论方法和技巧正确地使用结构化、模块程序设计技术注意培养学生良好的程序设计风格
3、应使学生比较熟练地使用调试工具DEBUG调试8086/8088汇编语言程序注意提高学生的调试能力
4、注意与前后相关课程的关系使学生对前导课程有进一步的理解,同时为学习后继课程打好基础
三、教学内容及基本要求第一单元基础知识[知识点]汇编语言的基本概念、数据的表示和类型、几种基本的逻辑运算、Intel8088/8086微处理器基本概念、存储器分段和地址的形成、[教学内容]
1.以二进制存在的机器语言计算机内部数的存储及运算也都是采用二进制
2.制数的值由1所在位置的权来确定
3.进制是一种很重要的短格式记数法,它把二进制数每4位分成一组,分别用0-9和A-F来表示0000-1111反之,16进制数的每一位用四位二进制表示,就是相应的二进制数4.十进制转换为二进制的方法主要有降幂法和除法计算机十化二程序中采取下面的算法5.标志位OF=1表示带符号数的运算结果无效CF=1表示无符号数运算结果无效6.计算机中的字符数据用ASCⅡ码表示,一个字符在存储器中占用一个字节(8位二进制码)7.BCD码是一种用二进制编码的十进制数,又称二-十进制数或8421码,它用4位二进制数表示一个十进制数码BCD码有压缩和非压缩两种格式,压缩的BCD码用4位二进制数表示一个十进制数位,如95表示为1001,0101非压缩的BCD码用地位二进制数表示一个十进制数位如95表示为00001001000001018.两种类型的内部存储器是ROM(只读存储器)和RAM(随机存储器)存储器按字节编址,存储器地址一般用16进制的无符号数表示9.字数据在存储器中存放的顺序为高地址字节放高8位,低地址字节放低8位10.AX、BA、CA、和DX是通用寄存器,每个通用寄存器可作两个8位寄存器使用(如AH和AL)11.一个20位的物理地址可表示成段地址偏移地址计算存储器单元的物理地址,可将段地址乘以10H,再加上偏移地址物理地址=(段地址×10H)+偏移地址12.段寄存器CS、SS、DS和ES分别寄存代码段、堆栈段、数据段和附加段的段地址13.变址寄存器SI和DI一般指示数据段内单元的地址,有时也可作为数据寄存器用14.16位的标志寄存器个包括6个状态标志(SF、__、PF、CF、AF、OF)和3个控制标志(DF、IF、TF)(CF、AF、SF、__和OF反映了算术运算以及移位、循环、逻辑等操作的结果状态[重难点]1.教学重点
1.汇编语言的基本概念(1)机器语言,汇编语言,汇编程序,汇编语言源程序,目标程序,目标代码,可执行程序(2)汇编语言的特点(3)___要学习汇编语言,汇编语言的应用场合
2.数据的表示和类型(1)数值数据的表示,符号扩展,数值数据的表示范围, BCD码,不同数据之间的转换(2)非数值数据类型字节、字、双字等
3.几种基本的罗辑运算“与”、“或”、“非”、“异或”
4.Intel8088/8086微处理器基本概念(1)8086/8088基本结构执行单元EU,总线接口单元BIU,指令的执行次序(2)8086/8088CPU寄存器组通用寄存器,数据寄存器,变址和指针寄存器段寄存器和指令指针(3)标志寄存器,运算结果标志、状态、控制标志
5.存储器分段和地址的形成(1)存储单元的地址(2)“高高低低”的存储原则(3)存储器的分段(4)物理地址的形成(5)段寄存器的引用(6)堆栈及其用途2.教学难点
1.8088/8086微处理器基本概念
2.存储器分段和地址的形成[教学要求]
1.领会汇编语言的慨念及特点
2.掌握数值数据的表示
3.了解8086CPU的基本结构
4.重点领会8086CPU地址形成的原理第二单元指令系统与寻址方式[知识点]寻址方式、正确使用指令系统[教学内容]
1.寻址方式
(1)立即寻址操作数由指令给出
(2)寄存器寻址操作数在寄存器中
(3)直接寻址操作数的有效地址由指令直接给出
(4)寄存器间接寻址PA=(DX)*16+(BX)(SI)(DI)
(5)寄存器相对寻址PA=(DX)*16+(BX)(SI)(DI)+位移量
(6)基址加变址寻址PA=(DX)*16+(SI)(DI)
(7)相对基址加变址寻址PA=(DX)*16+(SI)(DI)+位移量
2.正确使用指令系统,关键要清楚每条指令的功能以及它们规定或限制使用的寄存器下面是初学者易混淆的几个问题
(1)指令对地址还是对地址中的内容进行操作,要严格区分
(2)使用指令时,要清楚指令隐含的操作寄存器
(3)对带符号数和无符号数的操作应正确选择相应的条件转移指令
(4)用移位指令来倍增或倍减一个值是很方便的,但要注意对带符号数和无无符号数所使用的指令是不同的
(5)是是程序中指令的符号地址,要注意和变量(数据符号)的区别[重难点]1.教学重点
1、8086/8088的寻址方式七种基本的寻址方式固定寻址、立即寻址、存储器直接寻址、寄存器寻址、寄存器间接寻址,变址寻址,基址加变址寻址
2、8086/8088指令系统(1)分组数据传送、算术运算、逻辑运算、串操作、程序控制、处理器控制(2)常用指令格式和功能2.教学难点1.8086CPU的寻址方式的理解2.各种指令的用法[教学要求]1.理解七种寻址方式的慨念2.对数据传送、算术运算、逻辑运算、串操作、程序控制类的指令要深入理解第三单元汇编语言格式[知识点]伪操作指令、宏定义、地址表达式、数值表达式[教学内容]
1、伪操作也称为汇编程序命令,它是给汇编程序提供操作命令信息的,因此它和机器指令的区别在于机器指令是在在程序运行期间执行的,而伪操作是汇编程序对原程序进行汇编时由汇编程序执行的
2、伪操作的用法类似于使用助记符和机器指令和机器指令一样,没条伪操作(伪指令)的含义是唯一的
3、常用的伪操作1)数据定义及存储器伪操作DB、DW、DD、DQ、DT、DUP属性伪操作PTR、LABEL2)符号定义伪操作EQU、=3)段定义和段结束伪操作SEGMENT、ENDS、ASSUME定位类型PARR、BYTE、WORD、PAGE组合类型PUBLIC、COMMON、AT、STACK、MEMORY类别‘class_name’4)过程定义和过程结束PROC、ENDP过程属性NEAR、FAR5)程序结束伪操作END[start]6)对准伪操作EVEN、ORG7)基准控制伪操作RADIX二进制数标记B十进制数标记D八进制数标记O、Q16进制数标记H汇编程序默认无标记数为十进制数,DEBUG程序默认无标记数为16进制数
4、机器指令、伪指令和宏定义中的操作数项可用表达式表示表达式由常数、寄存器、标号、变量及各种操作符组成表达式在由汇编程序处理时,应能得出一个常数值填入机器代码在汇编期间不能求得确定值的表达式是错误的
5、变量中的表达式的属性应和变量的属性相同在质量中使用的表达式,其类型应和其它操作数匹配
6、表达式中常用的操作符
(1)算术操作符+、—、*、/、MOD
(2)逻辑操作符AND、OR、XOR、NOT
(3)关系操作符EQ、NE、LT、GT、LE、GE
(4)数值回送操作符TYPE、LENGTH、SIZE、OFFSET、SEG
(5)属性操作符PTR、SHORT、THIS、HIGH、LOW[重难点]1.教学重点1、汇编语言语句的种类和格式(1)语句的种类指令语句、伪指令语句、宏指令语句(2)指令语句格式和伪指令语句格式2、宏汇编语言中的表达式(1)参数的表示(2)变量和标号(3)运算符(4)宏汇编语言的常用分析操作符和合成操作符(5)运算符和操作符的优先级3、数据(变量)定义的语句和符号说明语句(1)数据(变量)定义语句,重复操作符DUP(2)符号定义语句4、常用伪指令语句和源程序__(1)段定义语句(2)段使用设定语句(3)源程序结束语句(4)汇编语言源程序的__(5)其它常用的伪指令5、上机过程(1)编辑、汇编、连结和调式过程、有关命令的使用(2)汇编程序的工作过程简单介绍2.教学难点1.伪指令的理解2.宏指令的理解3.常用伪指令语句和源程序__4.地址表达式的理解[教学要求]1.深入理解伪指令2.常用伪指令语句和源程序__应用3.深入领会地址表达式4.对地址表达式的组成的理解第四单元汇编语言程序设计[知识点]程序框图、分支程序设计、循环程序设计、子程序设计、常用DOS系统功能调用、字符串处理[教学内容]
1、程序设计的一般步骤
(1)分析所要解决的问题,确定适当的算法
(2)设计整个程序的逻辑结构,画出程序框图
(3)编写程序,正确运用IBMPC提供的指令、伪操作以及DOS、BIOS功能调用同时简洁明了的说明注释
(4)上机调试程序
2、一个高质量程序应具有以下特点
(1)程序有较好的逻辑结构,便于进行二次__
(2)源程序有较好的可读性使非专业人员能读懂会用,甚至能加以修改
(3)程序应有很好的可靠性和可维护性,也就是说要保证能正确地工作,并且易于做进一步的改进和完善
(4)程序运行效率高而且有可重入性,这就要求尽量使用效高的指令,尽量减少程序的额外开销,同时程序的运行不能破坏程序的原始数据和指令
3、子程序即是前述的过程它是模块化、结构化程序设计的基本构件,其设计与调用技术是要求重点和熟悉掌握的内容而对于子程序设计和调用技术,最关键的是要正确理解和熟悉掌握主、子程序的接口方法和主程序与子程序间的参数传递方法主程序与子程序的接口,一是要正确使用CALL/RET指令对,它们必须成对出现;二是转子和返主过程中的现场保护和恢复保护和恢复现场通常有两种方法
(1)程序与子程序所使用的存储器单元和寄存器尽量分开,互不干扰
(2)“现场”通过堆栈保护和恢复分为两种情况一是“现场”信息的保护和恢复安排在子程序中进行,即在子程序的开始处安排一段保护程序,在子程序结束前,再将有关部门内容恢复;二是安排在主程序中进行,即在调用子程序指令(CALL)前保护,在CALL指令后恢复4.主程序与子程序的参数传递
(1)存器参数传递调用前,主程序将参数保存在某些通用寄存器中,子程序则直接使用寄存器中的参数出口程序也通过寄存器返回给主程序寄存器参数传递简单快捷,单需占用通用寄存器,只适合参数较少的场合
(2)存储器参数传递利用制定的存储变量传递参数或通过地址表传送变量地址此方法适合参数较多的场合,但需事先在内存中建立参数表,不如寄存器参数传递方便快捷
(3)堆栈参数传递主程序与子程序将要传递的信息放在堆栈中,使用时再从堆栈中取出由于堆栈具有先进后出的特性,故多重调用中各重参数层次分明,适合参数较多且子程序有嵌套和递归调用的场合实现可重入子程序,一般也是用堆栈传递参数[重难点]1.教学重点1、顺序程序设计(1)顺序程序设计的基本方法(2)简单查表法代码转换2、分支程序设计(1)分支程序设计的基本方法(2)利用地址表实现多向分支3、循环程序设计(1)循环结构的组成和控制循环的一般方法(2)简单循环和多重循环4、子程序设计(1)子程序设计的一般原则(2)过程定义语句(3)主程序与子程序的参数传递方法(4)子程序说明信息和寄存器的保护和恢复5、常用DOS系统功能调用
(1)DOS系统功能调用概述,调用方法(2)常用DOS功能调用6、字符串处理(1)字符串操作指令和重复前缀(2)字符串处理2教学难点1.分支程序设计应用2.循环程序设计应用3.子程序设计应用[教学要求]1.加强分支程序设计的训练2.加强循环程序设计的训练3.加强子程序设计的训练第五单元输入和输出与中断[知识点]程序控制的I/O方式、中断传送方式、BIOS和DOS中断、常用BIOS和DOS调用[教学内容]
1、程序控制的I/O方式这种方式使用I/O指令(IN和OUT)直接在端口级上进行信息的输入/输出CPU与各设备之间以串行方式工作CPU要通过测试I/O接口的状态来控制传送,若I/O设备没有准备好,CPU就循环测试,直到设备准备好,CPU就执行一次传送
2、中断传送方式这种I/O方式实质上是一种特殊情况下的程序转移方式所谓特殊情况一般指
(1)计算机出现异常__,如电源掉电,内存I/O总线奇偶错等出现这样的__,CPU应立即中断现行程序的运行,转去执行处理故障的子程序
(2)程序中预先安排的中断指令(INT)或其它内部原因(如除法错等),使现行程序暂时中断,转去执行相应的处理子程序
(3)外部设备一切准备就绪时,向CPU发出中断现行程序的请求,以处理外设的输入输出以上三类情况是引起中断发生的原因,称为中断源第
(1)类情况一般安排为非屏蔽中断第
(2)类情况称为内中断,第
(3)类情况为外中断,这是一些可屏蔽的中断类型
3、BIOS和DOS中断驻留ROM的BIOS提供了主要I/O设备的中断例行程序以及接口控制等功能模块,因此可直接用指令设置参数,然后用中断指令INT调用BIOS中的例行程序使用DOS功能调用其操作更为简易,对硬件的以来性更少一些
(1)常用的BIOS中断调用INT10H显示器INT16H键盘INT12H内存检验INT17H打印机INT13H磁盘INT1AH时钟INT14H串行通讯INT40H软盘
(2)常用的DOS中断调用INT20H程序结束INT21H功能调用键盘I/O(AH=
1、
6、
7、
8、A、B、C)显示器I/O(AH=
2、
6、9)打印机I/O)AH=5)串行通讯I/O(AH=
3、4)[重难点]1.教学重点1、输入和输出的基本概念(1)I/O端口地址(2)CPU与外设之间交换的信息,数据传送方式2、查询传送方式3、中断传送方式(1)中断传送方式概述(2)中断源、可屏蔽中断、非屏蔽外部中断、内部中断(3)中断响应过程、中断向量表4、基本输入输出系统BIOS(1)概述
(2)BIOS中断服务程序调用2.教学难点1.各种传送方式的理解2.DOS调用的应用3.BIOS调用的应用[教学要求]1.理解各种传送方式2.加强应用对象的理解3.领会DOS调用4.领会BIOS调用
四、学时分配总学时60学时,其中理论课教学48学时序号课堂授课内容学时授课方法备注1基础知识6讲授2指令系统与寻址方式10讲授3汇编语言格式6讲授4汇编语言程序设计18讲授5输入、输出与中断8讲授
五、教材与参考书教材金汉均等编著..汇编语言程序设计武汉大学出版社,2007年9月参考书PETERABEL编著IBMPCASSEMBLYLANGUAGEANDPROGRAMMING(FOURTHEDITION)..清华大学出版社,1998年5月第1版
六、考核方式
1、闭卷笔试
2、上机测试
七、成绩评定
1、平时成绩20%
2、上机测试成绩20%
3、笔试成绩60%
八、其它说明汇编语言课程的主要任务是帮助学生理解和掌握微机的基本原理,并能够灵活的将汇编语言知识运用到实际问题的求解中与其相配套的《汇编语言实验》的主要任务是则是使学生能搞达到用汇编语言上机并熟练的实现对实际问题的应用。