32位汇编语言大纲

32位汇编语言程序设计(32-bit Assembly Programming)

《汇编语言程序设计》教学大纲

一、适用专业:

· 计算机科学与技术 · 软件学院 ?? 二、先修课:

高级语言程序设计 三、开课学期及学时:

三年级上学期(第五学期)

授课学时:51 实验学时:30 总学时:83 四、使用教材:

钱晓捷,32位汇编语言程序设计,机械工业出版社,2011年

五、目的和要求:

“汇编语言程序设计”是继“高级语言程序设计”之后的又一门计算机语言程序设计课程,但讲解的是面向处理器的低级语言。该课程一方面加强学生的高级语言编程能力;另一方面配合“计算机组成原理”和“微机原理及接口技术”课程,从软件角度理解计算机工作原理;同时,还作为自动控制等与硬件相关应用领域的程序设计基础,以及为“嵌入式系统”、“操作系统”、“编译原理”等课程提供基础知识。

本课程以Intel 80x86指令系统和微软MASM展开汇编语言程序设计方法。课程要求学生系统学习80x86整数指令系统、进一步理解计算机工作原理;要求学生掌握汇编语言源程序语句和格式,能够利用顺序、分支、循环和子程序等结构解决常规问题。本课程配有上机实践环节,要求学生具有阅读、编辑、汇编和调试汇编语言程序的能力。

六、教学内容和要求:

第1章 汇编语言基础,4学时 在了解软硬件开发环境的基础上,熟悉通用寄存器和存储器组织,掌握汇编语言的语句格式、程序框架和开发方法。

第2章 数据表示和寻址,6学时 在理解计算机如何表达数据的基础上,熟悉汇编语言中如何使用常量和变量,掌握处理器指令如何寻址数据的方式。

第3章 通用数据处理指令,8学时 熟悉IA-32处理器数据传送、算术运算、逻辑运算和移位操作等基本指令,通过程序片段掌握指令功能和编程应用。

第4章 程序结构,10学时

以顺序、分支和循环程序结构为主线,结合数值运算、数组处理等示例程序,掌握控制转移指令以及编写基本程序的方法。

第5章 模块化程序设计,8学时 以子程序结构为主体,围绕数码转换实现键盘输入和显示输出,掌握子程序、文件包含、宏汇编等各种多模块编程的方法。

第6章 Windows编程,6学时 熟悉汇编语言调用API函数的方法,掌握控制台输入输出函数。熟悉MASM的高级特性,理解Windows图形窗口程序的编写。

第7章 与Visual C++的混合编程,4学时 掌握嵌入汇编和模块连接进行混合编程方法,理解堆栈帧的作用,熟悉汇编语言调用高级语言函数和开发调试过程。

第8章 DOS环境的程序设计,4学时 熟悉DOS应用程序特点和DOS功能调用,掌握串操作指令和输入输出指令及应用,理解初始化编程、中断机制和编程方法。

第9章 浮点、多媒体及64位指令,1学时 熟悉浮点数据格式、多媒体数据格式及64位编程环境的特点,了解浮点操作、多媒体操作和64位指令。

- -2

“汇编语言程序设计”上机任务

“汇编语言程序设计”是一门实践性很强的课程,需要通过编程实践更好地掌握课程内容。编程实践以普通32位PC机为唯一硬件条件,结合教材配套的开发软件包进行。教材从构建开发环境开始就可以安排上机实践的任务,随着课堂教学的展开,逐渐进行开发环境的熟悉、MASM开发方法的练习、开发过程的熟练掌握、调试程序WinDbg的了解,掌握常用指令应用、分支、循环、子程序结构、库文件开发以及小型项目的组织,并随着内容深入介绍Windows编程和MASM32开发环境、与Visual C++混合编程和Visual C++开发环境、DOS平台和输入输出指令及串操作指令应用。

课程主要基于32位Windows控制台,以IA-32处理器常用指令和微软MASM展开汇编语言程序设计方法。课程要求学生系统学习IA-32指令系统、理解计算机工作原理;要求学生具有阅读、编辑、汇编和调试汇编语言程序的能力;要求学生掌握汇编语言源程序语句和格式,能够利用顺序、分支、循环和子程序等结构解决常规问题。

对程序设计类课程,没有上机编程的实践是无法真正掌握的。所以,希望学生加强实践环节。学生应完成基本的上机指导编程要求,同时争取多进行编程实践;因为只有通过实际编程才能发现程序设计中的许多问题。请你不要直接拷贝源程序代码,在你将一条一条语句的录入编辑过程中,就是书写正确语句、加深语句理解的绝好机会。 上机实验要求:

1、上机前作好充分准备,包括程序框图、源程序代码、开发过程、对运行结果的分析等。

2、上机时要遵守实验室的规章制度,爱护实验设备。注意及时在硬盘上存储程序,以避免文件丢失。每个上机实验安排在2个学时内完成。程序开发完成后,须由实验辅导教师在机器上检查运行结果。

3、上机后,应写出实验报告、并及时提交到实验室。 上机实验教材:

钱晓捷,32位汇编语言程序设计,机械工业出版社,2011年

本上机指导书所述的习题和例题均来自上述教材,有关习题例题的详细介绍请参看教材。

上机任务1 汇编语言开发过程

(1)创建MASM目录、复制开发软件,熟悉进入和退出32位控制台的方法。

(2)熟悉汇编语言的语句格式和程序框架,录入教材例1-1程序(EG0101.ASM)。 (3)熟悉汇编语言的开发过程,汇编连接教材例1-1程序、生成可执行文件并执行,

查阅列表文件。 上机任务2 数据表示和寻址

(1)掌握汇编语言进行常量表达和变量定义的方法,参考例1-1程序、按照习题2.14

要求在数据段定义ASCII可显示字符的数值,然后进行汇编、连接生成可执行文件,并显示出正确的ASCII表。

(2)掌握数据寻址方式,上机验证教材例2-11和例2-12程序。 上机任务3 数据传送指令

(1)掌握MOV、XCHG、PUSH和POP等常用传送指令,验证例3-3程序,并体会

其中存储器操作数寻址方法的运用。

(2)掌握配套教材的输入输出子程序库的应用,实现习题3.9程序。

- -3

上机任务4 数据运算指令

(1)熟悉状态标志的意义。首先判断习题3.12每条指令执行后AL的数值和相关标志

状态,写出结果。然后将其编辑成为一个完整的汇编语言源程序,汇编连接、生成可执行文件。可以利用本书配套的输入输出子程序库,在每条指令之后,调用其中的DISPRF(先调用)和DISPHD,显示6个状态标志位和EAX内容,并核对事先判断的结果。

(2)掌握常用加法、减法等数据运算指令,验证例3-5程序,实现习题3.15程序。 上机任务5 位操作指令

(1)掌握逻辑运算、移位等常用位操作类指令,验证例3-8程序,实现习题3.22程序。 (2)了解不同编码间的转换作用,实现习题3.19程序。 上机任务6 调试程序WinDbg

(1)参考教材附录A,通过调试例1-1程序,熟悉调试程序WinDbg的使用。

(2)理解断点调试、单步调试的作用和方法,按照附录A调试例3-6程序,调试习题

3-22程序、观察程序运行结果。 上机任务7 顺序程序和转移指令

(1)理解顺序程序结构,验证例4-2程序,实现习题4.7程序。 (2)掌握无条件转移指令,实现习题4.8程序。

(3)掌握有条件转移指令,验证例4-6程序,实现习题4.12程序。

(4)可选,按照附录A调试例4-5程序,调试习题4.12程序,并注意状态标志、并

跟踪指令执行顺序(即,程序指针EIP数值变化)。 上机任务8 分支程序设计(提交实验报告)

(1)掌握单分支结构程序的特点和方法,验证例4-10程序,实现习题4.17程序。 (2)掌握双分支结构程序的特点和方法,验证例4-11程序,实现习题4.16程序。 (3)可选,利用WinDbg调试习题4.16或4.17分支程序。 上机任务9 循环程序设计(提交实验报告)

(1)掌握循环指令和循环程序结构,验证例4-18程序,实现习题4.27程序。 (2)综合分支和循环程序结构,实现习题4.29程序。 (3)可选,利用WinDbg调试例4-15循环程序。 (4)可选,实现习题4.30程序。 上机任务10 子程序设计(提交实验报告)

(1)掌握子程序指令和子程序结构、熟悉子程序的参数传递的方法,实现习题5.8和

5.13程序。

(2)熟悉子程序模块、子程序库和子程序库包含生成可执行文件的多模块程序结构开

发方法,实现习题5.14各项要求。

(3)可选,利用WinDbg调试例5-7子程序。 上机任务11 Windows控制台应用程序(提交实验报告)

(1)熟悉Windows应用程序接口API调用原理、掌握常用控制台函数的调用方法,

实现习题6-4程序。 (2)实现习题6.6程序。

(3)可选,将主存内容显示子程序加入32位输入输出子程序库IO32.LIB,相应修改

包含文件IO32.INC,并利用一个调用程序验证该子程序的正确。

- -4

(4)可选,利用WinDbg调试例6-4Windows控制台程序。 上机任务12 Windows图形窗口应用程序

(1)熟悉消息窗口函数的调用方法,实现习题6.8程序。

(2)了解MASM32开发环境,验证例6-11程序,实现习题6.16程序。 上机任务13 与C++混合编程(提交实验报告)

(1)熟悉嵌入汇编和模块连接的混合编程和开发过程,验证例7-1和例7-2程序。 (2)实现习题7.9各项要求,并按照要求编写汇编语言程序。 上机任务14 DOS应用程序

(1)掌握16位DOS应用程序的编写,验证例8-2程序、实现习题8.6程序。 (2)熟悉串操作指令,验证例8-4程序、实现习题8.11程序。

(3)掌握输入输出指令应用,验证例8-7程序、实现习题8.14程序。 上机任务15 浮点指令程序

(1)熟悉浮点数据格式和常见浮点指令及其编程,验证例9-4程序和例9-5程序。 (2)实现习题9.6程序。

- -5

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4