当前位置:文档之家› 汇编语言程序设计课程教学大纲.

汇编语言程序设计课程教学大纲.

《汇编语言程序设计》课程教学大纲二、课程性质与教学目标《汇编语言程序设计》是计算机科学与技术专业一门重要的基础课,是必修的核心课程之一,是"操作系统"和"微机原理和接口技术"等其它核心课程必要的先修课,而且对于训练学生掌握程序设计技术,熟悉上机操作和程序调试技术都有重要作用。

因此该课程在整个教学计划中占有重要地位。

本课程的目的和要求是:1、应使学生掌握8086/8088宏汇编语言程序设计的基本方法和技巧,能够运用8086/8088宏汇编语言编写应用程序。

提高学生分析问题、解决问题的能力以及实际动手能力。

2、应使学生基本掌握汇编语言程序设计的基本理论,方法和技巧,正确地使用结构化、模块程序设计技术。

注意培养学生良好的程序设计风格。

3、应使学生比较熟练地使用调试工具DEBUG调试8086/8088汇编语言程序。

注意提高学生的调试能力。

4、注意与前后相关课程的关系。

使学生对前导课程有进一步的理解,同时为学习后继课程打好基础。

三、教学内容及基本要求第一单元基础知识[知识点]汇编语言的基本概念、数据的表示和类型、几种基本的逻辑运算、Intel 8088/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 表示为00001001 00000101。

8.两种类型的内部存储器是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、ZF、PF、CF、AF、OF)和3个控制标志(DF、IF、TF)。

(CF、AF、SF、ZF和OF反映了算术运算以及移位、循环、逻辑等操作的结果状态。

[重难点]1.教学重点1.汇编语言的基本概念(1)机器语言,汇编语言,汇编程序,汇编语言源程序,目标程序,目标代码,可执行程序。

(2)汇编语言的特点(3)为什么要学习汇编语言,汇编语言的应用场合。

2.数据的表示和类型(1)数值数据的表示,符号扩展,数值数据的表示范围,BCD码,不同数据之间的转换。

(2)非数值数据类型:字节、字、双字等。

3.几种基本的罗辑运算“与”、“或”、“非”、“异或”4.Intel 8088/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、Q 16进制数标记 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)编写程序,正确运用IBM PC提供的指令、伪操作以及DOS、BIOS功能调用。

同时简洁明了的说明注释。

(4)上机调试程序。

2、一个高质量程序应具有以下特点:(1)程序有较好的逻辑结构,便于进行二次开发。

(2)源程序有较好的可读性。

使非专业人员能读懂会用,甚至能加以修改。

(3)程序应有很好的可靠性和可维护性,也就是说要保证能正确地工作,并且易于做进一步的改进和完善。

(4)程序运行效率高而且有可重入性,这就要求尽量使用效高的指令,尽量减少程序的额外开销,同时程序的运行不能破坏程序的原始数据和指令。

3、子程序即是前述的过程。

它是模块化、结构化程序设计的基本构件,其设计与调用技术是要求重点和熟悉掌握的内容。

而对于子程序设计和调用技术,最关键的是要正确理解和熟悉掌握主、子程序的接口方法和主程序与子程序间的参数传递方法。

主程序与子程序的接口,一是要正确使用CALL/RET 指令对,它们必须成对出现;二是转子和返主过程中的现场保护和恢复。

保护和恢复现场通常有两种方法:(1)程序与子程序所使用的存储器单元和寄存器尽量分开,互不干扰。

(2)“现场”通过堆栈保护和恢复。

分为两种情况:一是“现场”信息的保护和恢复安排在子程序中进行,即在子程序的开始处安排一段保护程序,在子程序结束前,再将有关部门内容恢复;二是安排在主程序中进行,即在调用子程序指令(CALL)前保护,在CALL指令后恢复。

相关主题