计算机系统基础 公开课 概述
概览
- 从-2147483648<2147483647说起。
-2147483648即INT32_MIN, 为什么字面值会“大于”INT32_MAX呢(并没有溢出);但如果赋值给int变量,能够获得正确的结果。
归结于:字面值在机器中如何表示为二进制01值?变量在内存中是如何存在,如何运算,如何在函数中处理的?不同类型的变量互相赋值、强制类型转换会发生什么?格式化输出是如何实现的?
- 初识冯诺依曼架构
主存,用于程序和数据;内存
一个部件,用于逐条取出主存中的指令;控制器
一个部件用于执行具体运算;CPU的ALU
还要有输入程序和数据/输出运行结果的部件;I/O设备
程序由指令构成,不同指令将对数据作不同处理。在程序启动后,自动地执行取指令和执行 指令的任务。
每条指令由操作码和地址码两部分组成;
了解PC(程序计数器),各种寄存器,控制器的概念。
- 汇编语言与高级语言
用助记符表示操作码/寄存器,用标号表示位置;
LD/ST 助记符,存储单元与寄存器之间的内容通信;
高级语言包括编译语言和解释语言;
- ISA 指令集体系结构(指令系统)
如何使用硬件,可执行的指令的集合;
微体系结构,即计算机的组成,包括存储器、控制器、运算器、输入输出、总线;
ISA与微体系结构非常相关;但同一种ISA可以有不同的计算机组成,如乘法指令有不同的实现方式,如ALU(加、减、移位实现)或乘法器(抽象成完全相同的接口);
- 我们想要知道的:
- 数据的表示与运算
- 各类语句(赋值、判断、循环)转换成相应的何种指令
- 复杂数据类型的转换表示
- 过程(函数)调用的转换表示
- 链接和装载
- 程序执行(存储器访问)
- 程序异常和中断
- 输入输出与系统调用