课程

中国大学MOOC,为你提供一流的大学教育

hi,小mooc
SPOC学校专有课程
汇编语言
第7次开课
开课时间: 2025年02月21日 ~ 2025年06月30日
学时安排: 3-5小时每周
进行至第12周,共19周 已有 356 人参加
立即参加
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%)

课程大纲

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

8.CS:APP3e, Bryant and O'Hallaron (cmu.edu)

显示全部
常见问题

 特别提醒:

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

郑州大学
1 位授课老师
穆玲玲

穆玲玲

副教授

下载
下载

下载App