我为什么要学习这门课?
汇编语言是面向处理器的编程语言,是联系计算机软件和硬件的“桥梁,是自动控制等与硬件相关应用领域的程序设计基础。本课程是计算机学科的专业基础课。通过本课程的学习,我们将加强的高级语言编程能力,从软件角度进一步理解计算机工作原理.,为学习“计算机组成原理”、“微机原理及接口技术”、“嵌入式系统”、“操作系统”、“编译原理”等课程提供基础知识。
这门课的主题是关于什么?
本课程在WINDOWS环境下,以Intel 80x86指令系统和微软MASM展开汇编语言程序设计方法。课程内容包括硬件基础,汇编语言源程序语句、格式与开发方法,通用处理器指令及其应用,结构化程序设计,多模块程序设计、DOS环境设计、与C++混合编程和windows编程。
学习这门课可以获得什么?
1. 了解软硬件开发环境,熟悉通用寄存器和存储器组织,掌握汇编语言的语句格式、程序框架和开发方法。
2. 熟悉计算机如何表达数据,熟悉汇编语言中如何使用常量和变量,掌握处理器指令如何寻址数据的方式。
3. 熟悉IA-32处理器数据传送、算术运算、逻辑运算和移位操作等基本指令,掌握指令功能和编程应用。
4. 掌握控制转移类指令以及编写顺序、分支和循环基本程序的方法。
5. 掌握子程序编程,熟悉文件包含、宏汇编等各种多模块编程的方法。
6. 了解汇编语言调用API函数的方法,熟悉控制台输入输出函数。了解MASM的高级特性和Windows图形窗口程序的编写。
7. 熟悉嵌入汇编和模块连接进行混合编程方法。
8. 了解DOS应用程序特点和DOS功能调用,掌握输入输出指令及应用。
这门课有什么特色和亮点?
郑州大学的汇编语言课程为河南省一流本课线上课程,一流本课线上线下混合教学课程,河南省精品在线共享课程。2017年,汇编语言课程依托郑州大学厚山学堂教学平台,开始进行混合教学改革。2019年在中国大学慕课建立异步SPC课程,以河南省一流本科线上课程“汇编语言程序设计”为基础,根据郑州大学本科专业培养目标,补充教学资源,改革混合教学,教学效果受到学生和教学督导组的肯定。
该课程具有以下特点:
1. 以学生为中心,依托信息技术,实施线上自主学习+线下导学辅导、实验和翻转课堂的四阶混合教学模式。
2. 采用过程化、多元化的学习评价,持续改进评价内容和评价方式。
3. 构建WINDOWS环境下快速开发环境,持续完善教学资源。
“汇编语言”课程主要基于32位Windows控制台,以IA-32处理器常用指令和微软MASM展开汇编语言程序设计方法。编程实践以普通32位PC机为唯一硬件条件,结合MASM开发软件包进行。课程配合理论教学内容安排上机实践,从开发环境的熟悉、MASM开发方法的练习、开发过程的熟练掌握、调试程序WinDbg的了解,逐步掌握常用指令应用、分支、循环、子程序结构、库文件开发以及小型项目的组织,最后了解Windows编程、与Visual C++混合编程、DOS平台和输入输出指令应用。
课程应达到的教学目标如下:
【 知识和能力目标】
1. 熟悉80x86通用处理器的指令系统和常用指令,具有阅读、编辑、汇编和调试汇编语言程序的能力,能够利用顺序、分支、循环和子程序等结构解决常规问题;熟悉汇编语言的多模块编程、DOS应用程序和Windows应用程序的编写,了解汇编语言与高级语言混合编程的方法
2. 掌握底层编程语言的特点和程序设计方法,初步了解计算机的硬件组成,从软件角度理解计算机的工作原理
【 过程和方法目标】
1.能够在64位WINDOWS环境下采用多模块、与C++混合编程等方法开发汇编语言32位应用程序和DOS环境应用程序解决实际工程问题
2. 能够在64位WINDOWS环境下利用汇编语言知识分析C语言程序代码和系统软件
【 情感和素质目标】
1. 守时自律,具有自主学习,积极探索的学习习惯
2. 树立团队意识,培养专业兴趣,善于沟通与展示
本课程的总成绩包括平时成绩(60%)和期末考试成绩(40%),平时成绩包括线上成绩(50%)和线下成绩(50%)。期末考试是学院统一组织的、传统的纸质考试。
作为郑州大学信息工程学院计算机学科的SPOC课程,“汇编语言”实施基于慕课的混合式教学,学生需要完成线上、线下两方面的学习任务。
(1)线上学习,学生需要利用网络平台自主完成、掌握基本教学内容。结合阅读教材,进行视频点播、参与教学讨论、完成单元测试、提交作业及作业互评等。
课程的线上成绩由单元测试、章节作业和主题讨论组成,各部分比例(暂定)如下:
线上成绩 = 单元测验50% + 作业30% + 讨论20%
其中,单元测试是客观题,章节作业是主观题,学生需参与讨论的回帖数量达到25个才能获得讨论部分的满分。
(2)线下学习,学生需要按照教学课表参加课堂授课和机房实践教学。学生应事先完成规定的网络自学任务之后,参与课堂教学,带着问题积极参与课堂讨论等活动。
在面授教室中,主讲教师不再重复讲授网络平台已有内容,而主要组织线下的课堂教学,包括内容总结、重难点辅导、答疑解惑、翻转课堂(主题讨论),安排上机实践环节等。有些课堂教学活动(例如总结辅导、答疑解惑等)要求全体学生一起参加,有些课堂教学活动(例如主题讨论等)分小班(组)进行。
在专业机房或实验室中,学生按照教学要求进行汇编语言的编程实践,完成上机实验的任务,并提交实验报告。
课程的线下成绩由课堂表现、上机实验(程序设计和实验报告质量)等组成。
线下成绩=课堂表现(20%)+上机实验(80%)
1 汇编语言基础
1-1 汇编语言特点
1-2 硬件组成
参考资料
单元测试1
2 汇编语言开发
2-1 程序格式
2-2 开发过程
总结与参考文献
实验1 汇编语言开发过程
单元测试2
第1章 作业
征集汇编语言开发操作过程录屏
3 数据表示
3-1 常量表达
3-2 变量定义
3-3 变量应用
参考资料
单元测试3
4 数据寻址
4-1 立即数寻址
4-2 寄存器寻址
4-3 存储器寻址
实验2 数据表示和寻址
总结与参考文献
单元测试4
第2章作业
5 传送和运算指令
5-1 数据传送类指令
5-2 算术运算类指令
参考资料
单元测试5
算术运算类指令总结文档
6 位操作指令
6-1 逻辑和移位指令
6-2 循环移位指令
实验3
通用指令集合小结与参考文献
单元测试6
7 顺序程序结构
7-1 自然数求和程序
7-2 处理器识别程序
单元测试7
8 分支程序结构
8-1 转移指令
8-2 单分支结构
8-3 双分支结构
实验4
参考资料
单元测试8
9 循环程序结构
9-1 循环指令
9-2 计数控制循环
9-3 条件控制循环
实验5
单元测试9
10 子程序结构
10-1 子程序设计
10-2 参数传递
实验6
参考资料
单元测试10
11 多模块程序结构
11-1 程序模块
11-2 宏汇编
实验7
实验讲解
单元测试11
12 DOS环境编程
12-1 DOS编程
12-2 输入输出编程
实验8
实验讲解
参考资料
单元测试12
第八章作业
13 与C++混合编程
13-1 嵌入汇编
13-2 模块连接
研究与设计(选做)
参考资料
第七章作业
单元测试13
14 Windows编程
14-1 Windows函数调用
14-2 Windows应用程序
单元测试14
第六章作业
习题讲解
第三章作业讲解
第四章作业讲解
第五章作业讲解
熟悉计算机基础知识
了解C语言及其编程方法
课程配套教材:
钱晓捷编著,32位汇编语言程序设计(第3版),2024年8月,ISBN 978-7-111-75831-0
课程辅助教材:
钱晓捷编著,汇编语言(基于64位ARMv8体系结构),2022年9月,ISBN 978-7-121-44371-8
参考书目:
[1]杨季文. 新概念汇编语言. 清华大学出版社. 2017
[2]王爽. 汇编语言(第4版). 清华大学出版社. 2019.
[3] 钱晓捷. 微机原理与接口技术—基于IA-32处理器和32位汇编语言(第5版). 机械工业出版社,2014.
[4] 钱晓捷. 汇编语言程序设计(第4版). 电子工业出版社,2012.
[5] 钱晓捷. 汇编语言简明教程. 电子工业出版社,2013
[6] Kip R. Irvine著 温玉杰等译,Intel汇编语言程序设计(第五版),电子工业出版社,2007
[7] Intel,Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 1: BasicArchitecture(253665.pdf)
[8] Richard C. Detmer著. 80x86汇编语言与计算机体系结构(英文版). 机械工业出版社,2004
[9] Barry B.Brey著. Intel微处理器(英文影印版•第7版). 机械工业出版社,2006
网络课程
中国大学慕课汇编语言程序设计(郑州大学 钱晓捷 穆玲玲 张青)
网络资源
1. 微辅网(课程团队的个人主页)
2. Intel 64 and IA-32 Software Developer Manuals,https://software.intel.com/en-us/articles/intel-sdm
3. x86 assembly language,https://en.wikipedia.org/wiki/X86_assembly_language
4. Dennis Yurichev: Understanding Assembly Language. https://yurichev.com/writings/UAL-EN.pdf
5. WINDBG: https://www.windbg.org
6. masm32: https://www.masm32.com
7. Microsoft 宏汇编程序参考, https://docs.microsoft.com/zh-cn/cpp/assembler/masm/microsoft-macro-assembler-reference?view=msvc-160
特别提醒:
本网站课程只是提供基本教学内容的讲解和练习。学生应结合教材内容和教学要求,或自行或在面授教师指导下进行上机实验,才能更好地掌握“汇编语言”。