计算机系统基础(一) :程序的表示、转换与链接

540 次查看
南京大学
Coursera
  • 完成时间大约为 52 个小时
  • 混合难度
  • 中文, 英语
注:本课程由Coursera和Linkshare共同提供,因开课平台的各种因素变化,以上开课日期仅供参考

课程概况

本课程主要介绍高级语言程序中的数据类型及其运算、语句和过程调用等是如何在计算机系统中实现的。主要包含三个主题:(1)表示。不同数据类型(如带符号整数、无符号整数、浮点数、数组、结构等)数据在寄存器或存储器中的表示和存储;指令的格式、编码及其在存储器中的存储;存储地址(指针)的表示。(2)转换。高级语言程序中的过程(函数调用)、循环、选择等语句与机器级代码之间的对应关系。(3)链接。多个可重定位目标文件如何链接生成可执行目标文件并加载到系统中。

通过本课程的学习,使学习者能从程序员角度认识计算机系统,能够建立高级语言程序、ISA、OS、编译器、链接器等之间的相互关联,对指令在硬件上的执行过程和指令的底层硬件执行机制有一定的认识和理解,从而增强在程序调试、性能提升、程序移植和健壮性等方面的能力,并为后续的“计算机组成与设计”、“操作系统”、“编译原理”、“计算机体系结构”等课程打下坚实基础。

学完本课程后,学习者将对以下问题有比较深刻的认识,并能解决相关实际问题。
—-程序中处理的数据在机器中如何表示和运算?
—-程序中各类控制语句对应的机器级代码结构是怎样的?
—-多个程序模块是如何链接起来形成可执行目标文件的?
—-机器级代码及构成机器级代码的指令是如何在机器上执行的?

课程大纲

周1
完成时间为 5 小时
WEEK1
首先,通过介绍C语言程序的具体实例,来说明高级语言程序的执行结果与编程语言之外的计算机系统其他方面有关,从而使学生明白为何要学习“计算机系统基础”课程;然后,介绍计算机系统基本组成与基本功能、程序开发和执行过程、计算机系统层次结构等概述性内容;最后,简要说明本课程的主要学习内容。
8 个视频 (总计 133 分钟), 2 个测验

周2
完成时间为 6 小时
WEEK2
首先,介绍进位计数制和编码的基本概念;然后,介绍定点数的编码表示,在此基础上介绍带符号整数和无符号整数的表示;接着,介绍浮点数的编码表示,主要包括IEEE 754单精度和双精度浮点格式标准;随后介绍逻辑值、西文字符和汉字等非数值数据的编码表示;最后,介绍数据的宽度和存储。
13 个视频 (总计 212 分钟), 2 个测验

周3
完成时间为 5 小时
WEEK3
首先,介绍布尔代数和数字逻辑电路的基础性内容;然后,介绍C语言中的按位运算以及逻辑运算;接着,介绍高级语言中的整数加减运算及其对应的底层实现电路。
7 个视频 (总计 109 分钟), 2 个测验

周4
完成时间为 4 小时
WEEK4
基于运算电路基础,介绍高级语言中的整数乘除运算与底层实现之间的关系;然后介绍浮点数的运算,特别是浮点运算中的精度问题。
5 个视频 (总计 109 分钟), 2 个测验

周5
完成时间为 3 小时
WEEK5
首先,介绍高级语言程序与机器级代码之间的关系,以及机器级代码与指令集体系结构(ISA)的关系;然后,介绍IA-32指令系统的概述性内容,包括寄存器组织、寻址方式和指令格式等。
7 个视频 (总计 70 分钟), 2 个测验

周6
完成时间为 5 小时
WEEK6
主要介绍IA-32指令系统中常用的几类指令,包括传送、定点算术运算、按位运算、控制转移、x87浮点运算指令,最后简要介绍了MMX及SSE指令集。
12 个视频 (总计 149 分钟), 2 个测验

周7
完成时间为 4 小时
WEEK7
主要介绍C语言程序中各类语句被转换为机器级代码后的机器级表示,包括过程(函数)调用的机器级表示、选择和循环语句的机器级表示。
8 个视频 (总计 106 分钟), 2 个测验

周8
完成时间为 5 小时
WEEK8
主要介绍C语言程序中数组和指针类型的分配和访问、结构和联合数据类型的分配和访问、数据的对齐存放。最后介绍越界访问和缓冲区溢出攻击。
8 个视频 (总计 140 分钟), 2 个测验

周9
完成时间为 5 小时
WEEK9
首先,介绍了x86-64指令系统的概述性内容;然后,介绍了与IA-32指令不同的几种x86-64基本指令;最后,介绍了x86-64中过程(函数)调用的具体的实现。
8 个视频 (总计 136 分钟), 2 个测验

周10
完成时间为 5 小时
WEEK10
首先,介绍了在生成可执行文件的过程中所涉及到的概述性内容;然后,介绍了目标文件格式的基本内容;最后,分别介绍ELF文件格式中的可重定位文件格式(链接视图)和可执行文件格式(执行视图)。
8 个视频 (总计 138 分钟), 2 个测验

周11
完成时间为 4 小时
WEEK11
主要内容包括符号的概念、符号表的结构、静态库和静态链接、符号解析。
6 个视频 (总计 95 分钟), 2 个测验

周12
完成时间为 5 小时
WEEK12
主要内容包括符号的重定位、可执行文件的加载、共享库和动态链接以及位置无关代码(PIC)。
8 个视频 (总计 130 分钟), 3 个测验

千万首歌曲。全无广告干扰。
此外,您还能在所有设备上欣赏您的整个音乐资料库。免费畅听 3 个月,之后每月只需 ¥10.00。
Apple 广告
声明:MOOC中国十分重视知识产权问题,我们发布之课程均源自下列机构,版权均归其所有,本站仅作报道收录并尊重其著作权益。感谢他们对MOOC事业做出的贡献!
  • Coursera
  • edX
  • OpenLearning
  • FutureLearn
  • iversity
  • Udacity
  • NovoEd
  • Canvas
  • Open2Study
  • Google
  • ewant
  • FUN
  • IOC-Athlete-MOOC
  • World-Science-U
  • Codecademy
  • CourseSites
  • opencourseworld
  • ShareCourse
  • gacco
  • MiriadaX
  • JANUX
  • openhpi
  • Stanford-Open-Edx
  • 网易云课堂
  • 中国大学MOOC
  • 学堂在线
  • 顶你学堂
  • 华文慕课
  • 好大学在线CnMooc
  • (部分课程由Coursera、Udemy、Linkshare共同提供)

© 2008-2020 MOOC.CN 慕课改变你,你改变世界