学校云 建设你的专属在线教育平台
中国大学MOOC
SPOC学校专有课程
汇编语言
分享
spContent=我们相信,“汇编语言在底层但不低级”。 相信我们,大家一起“汇编、汇编,一定会编”。
—— 课程团队
课程概述

我为什么要学习这门课?

      汇编语言是面向处理器的编程语言,是联系计算机软件和硬件的“桥梁,是自动控制等与硬件相关应用领域的程序设计基础。本课程是计算机学科的专业基础课。通过本课程的学习,我们将加强的高级语言编程能力,从软件角度进一步理解计算机工作原理.,为学习“计算机组成原理”、“微机原理及接口技术”、“嵌入式系统”、“操作系统”、“编译原理”等课程提供基础知识。

 

这门课的主题是关于什么?

      本课程在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环境下快速开发环境,持续完善教学资源。

2020-2021学年第1学期教学效果展示

授课目标

汇编语言”课程主要基于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] IntelIntel 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

常见问题

 特别提醒:

本网站课程只是提供基本教学内容的讲解和练习。学生应结合教材内容和教学要求,或自行或在面授教师指导下进行上机实验,才能更好地掌握“汇编语言”。