新版汇编语言程序设计 教学大纲
一、适用专业:计算机科学与技术
二、先修课:高级语言程序设计
三、开课学期及学时:三年级上学期(第五学期) 授课学时:51 实验学时:30 总学时:83
四、使用教材:《新版汇编语言程序设计》,钱晓捷 主编,电子工业出版社,2006.12
五、目的和要求:
“汇编语言程序设计”是继“高级语言程序设计”之后的又一门计算机语言程序设计课程,但讲解的是面向处理器的低级语言。该课程一方面加强学生的高级语言编程能力;另一方面配合“计算机组成原理”和“微机原理及接口技术”课程,从软件角度理解计算机工作原理;同时,还作为自动控制等与硬件相关应用领域的程序设计基础,以及为“嵌入式系统”、“操作系统”、“编译原理”等课程提供基础知识。
本课程以Intel 80x86指令系统和微软MASM展开汇编语言程序设计方法。课程要求学生系统学习80x86整数指令系统、进一步理解计算机工作原理;要求学生掌握汇编语言源程序语句和格式,能够利用顺序、分支、循环和子程序等结构解决常规问题。本课程配有上机实践环节,要
求学生具有阅读、编辑、汇编和调试汇编语言程序的能力。
第1章 汇编语言基础知识
了解微机及PC机系统的基本软硬件组成、熟悉汇编语言的概念和应用特点、复习掌握数据表达,掌握8086的寄存器组和存储器组织,掌握8086的寻址方式
第2章 8086指令系统
掌握基本指令(MOV/XCHG/XLAT、PUSH/POP、LEA;CLC/STC/STC、CLD/STD;ADD/ADC/INC、SUB/SBB/DEC/CMP/NEG、CBW/CWD;AND/OR/XOR/NOT/TEST、SHL/SHR/SAR、ROL/ROR/RCL/RCR;REP、MOVS/LODS/STOS;JMP/Jcc、JCXZ/LOOP、CALL/RET、INT n)。掌握堆栈工作原理、指令对标志的影响、符号扩展的含义、压缩和非压缩BCD的格式,串操作寻址特点。
熟悉特指令(IN/OUT ;CLI/STI;MUL/IMUL、DIV/IDIV、DAA/DAS、AAA/AAS;CMPS/SCAS;IRET;NOP)。了解不常使用的指令(LAHF/SAHF/PUSHF/POPF、LDS/LES;AAM/AAD;REPZ/REPNZ;LOOPZ/LOOPNZ;INTO;LOCK/HLT/ESC/WAIT)。
掌握DOS、了解ROM-BIOS的字符/字符串输入输出功能调用方法。
掌握DEBUG调试程序的使用及调试指令和程序段的方法。
第3章 汇编语言程序格式
掌握汇编语言语句格式,掌握简化段定义(或完整段定义)源程序格式,掌握常量表达、变量定义及应用,变量、标号和逻辑段的属性。
掌握汇编语言源程序的编辑、汇编、连接和调试的开发方法。
了解数值表达式、复杂数据结构和DOS的程序结构。
掌握基本伪指令和操作符(EQU/=;+-*/;DB/DW/DD、?/DUP;ORG/$、OFFSET/SEG/PTR;.MODEL/.STACK/.DATA/.CODE/END、SEGMENT/ENDS)。了解不常使用伪指令和操作符(.RADIX;逻辑、移位和关系运算符;DF/DQ/DT;EVEN/ALIGN;THIS/SHORT/TYPE/SIZEOF/LENGTHOF;ASSUME/GROUP、.SEG/.DOSSEG/.ALPHA)
第4章 基本汇编语言程序设计
掌握基本程序结构――顺序结构、分支结构、循环结构、子程序(含过程定义伪指令PROC
/ENDP)及其汇编语言程序设计方法。
掌握常见问题的汇编语言程序设计方法,它们是:多精度运算,查表(查代码、特定值等)、ASCII、BCD及十六进制数据间的代码转换;数据范围判断(0~9、A~Z、a~z)、字母大小写转换;字符串传送、比较等操作、求最小最大值、数据求和、统计字符个数;子程序的寄存器和共享变量传递参数。
第5章 高级汇编语言程序设计
熟悉利用MASM的高级语言特性进行分支结构、循环结构、子程序的汇编语言程序设计方法。熟悉利用宏结构(宏汇编、条件汇编和重复汇编)和模块化方法(源程序包含、代码连接和子程序库)提高程序设计效率的方法。了解输入输出程序设计的特点和方法。
第6章 32位指令及其编程
熟悉32位80x86CPU的3种工作方式和32位寄存器组,掌握32位寻址方式,了解16位指令如何实现32位扩展,熟悉常用16位指令的32位扩展功能、部分新增指令(PUSHA/POPA、MOVSX/MOVZX、INS/OUTS、JECXZ)及应用,掌握32位指令编程方法。
了解常用的32位新增指令(BT/BTC/BTR/BTS、SETcc、BSWAP/XADD/CMPXCH
G、CPUID、CMOVcc),了解利用汇编语言编写32位Windows控制台和窗口应用程序的特点和方法。
第7章 汇编语言与C/C++的混合编程
熟悉嵌入式和模块连接两种混合编程方法,了解模块连接混合编程的约定规则,熟悉模块链接混合编程的参数传递方法。了解32位环境的混合编程方法。
第8章 80x87浮点指令及其编程
了解Intel 80x87浮点处理单元的数据结构、寄存器、浮点指令特点及其编程方法。
第9章 多媒体指令及其编程
了解多媒体处理MMX、SSE和SSE2指令支持的数据结构、寄存器、特点及其编程方法。
·特别说明
根据学生知识水平和学习目的,“汇编语言程序设计”课程的教学要求可以分成三个层次:作为初学者(专科)入门的基本要求,作为普通高校本科学生的普通要求,作为实际应用人员的高级要求。
1. 基本要求
  教学内容主要包括基础知识、指令系统、伪指令和基本程序设计的前4章内容,重点是课程教学内容中属于学生“掌握”层次的知识。侧重掌握微处理器都具有的常用指令(例如8086指令系统中的通用传送指令、加减法指令、逻辑运算指令、移位指令、无条件和有条件转移指令等),不要求掌握特殊或专用指令(例如8086指令系统中的标志传送指令、有条件重复前缀、有条件循环指令等)。侧重掌握常用的伪指令和操作符(例如MASM中的变量定义、名字和标号的属性涉及的伪指令和操作符等),不要求掌握不常使用的伪指令和操作符(例如MASM中的结构和记录变量伪指令、移位和逻辑运算符等)。侧重掌握汇编语言源程序的开发方法,可以对调试程序不作要求。侧重掌握分支、循环、子程序基本程序结构、掌握对简单问题的编程方法,不要将应用问题复杂化。
  这是“汇编语言程序设计”课程最基本的内容,学生必须首先掌握。它也可以作为普通高校计算机专业的专科院系的教学要求。另外,这些教学内容也是后续课程“微机接口技术”所需要的基本要求。这样的教学内容可以安排一门独立的课程,也可以与“微机原理及接口技术”基本教学内容合并成一门课程。
低级编程语言2. 普通要求
  教学内容除了包括基本要求的教学内容外,还应该学习第5章高级程序设计方法,并介绍第6章32位指令及其编程和第7章混合编程的方法。
  这是“汇编语言程序设计”课程比较全面的内容,为深入学习和实际应用奠定基础。它通常作为普通高校计算机专业的本科院系的教学要求。这些教学内容适合作为一门独立开设的课程,也可以作为主体教学内容与“微机原理”合并成一门课程。
3. 高级要求
  教学内容除了包括普通要求的教学内容外,应该有针对性地展开后4章的内容,并结合实际应用查阅参考资料深入学习。它们包括第6章32位Windows程序设计、第7章混合编程的应用、第8章浮点指令编程、第9章多媒体指令优化编程。
  这是为了在实际工作当中应用Intel 80x86汇编语言开发程序所应该掌握的内容。这些教学内容最好结合课程设计、毕业设计或工程项目进行专题学习。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。