我为什么要学习这门课?
汇编语言是面向处理器的编程语言,是联系计算机软件和硬件的“桥梁,是自动控制等与硬件相关应用领域的程序设计基础。本课程是计算机学科的专业基础课。通过本课程的学习,我们将加强的高级语言编程能力,从软件角度进一步理解计算机工作原理.,为学习“计算机组成原理”、“微机原理及接口技术”、“嵌入式系统”、“操作系统”、“编译原理”等课程提供基础知识。
这门课的主题是关于什么?
本课程在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%)
熟悉计算机基础知识
了解C语言及其编程方法
课程配套教材:
钱晓捷编著,32位汇编语言程序设计(第2版),2016年7月,ISBN 978-7-111-54335-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
特别提醒:
本网站课程只是提供基本教学内容的讲解和练习。学生应结合教材内容和教学要求,或自行或在面授教师指导下进行上机实验,才能更好地掌握“汇编语言”。