计算机系统抽象层

image-20211219100743320

image-20211219121311474

  • 操作系统/虚拟机:包括操作系统,编译和链接等
  • 指令集体系结构(ISA):包括指令系统,机器码,汇编语言等
  • 微体系结构及硬件:包括CPU的通用结构,层次结构存储系统等

冯.诺依曼结构计算机模型

image-20211219102027077

image-20211219105020766

C语言编译全流程及中间产物

1
2
3
4
5
// hello.c
#include <stdio.h>
int main() {
printf("hello, world\n");
}

image-20211219110610510

我们把各种语言处理程序(如编译、汇编链接)和运行时系统(如库函数,调试、优化等功能)合称为语言处理系统

C语言Hello程序的数据流

在shell里执行./hello时,数据流如下:

image-20211219111214305

指令集体系结构(ISA)

  • ISA:Instruction Set Architecture,即指令集体系结构,有时简称为指令系统。
  • ISA 是一种规约(Specification),它规定了如何使用硬件
  • ISA 是计算机组成的抽象
    • 不同 ISA 规定的指令集不同,如 IA-32、MIPS、ARM 等。
    • 计算机组成必须能够实现 ISA 规定的功能,如提供 GPR 、标志、运算电路等。
    • 同一种 ISA 可以由不同的计算机组成,如乘法指令可用 ALU 或乘法器实现。

image-20211219113040513

补码的实质

  • 补码的实质实际上是模运算在一个模运算系统中,一个数与它除以“模”后的余数等价

  • eg:时钟是一种模12系统。现在钟表时针指向10点,要将它拨向6点,有两种拨法:

    • 顺拨8格:10 + 8 = 18 ≡ 6
    • 倒拨4格:10 - 4 = 6

    也就是:10 - 4 ≡ 10 + 8-4 ≡ 8。此时可以称8是-4对模12的补码(即:-4的模12补码等于8)

  • **一个负数的补码 等于 模 减去 该负数的绝对值**。

    eg:上述中,模为12,负数为-4。所以负数-4的的补码为 12 - | -4 | = 8。

  • 对于某一确定的模,某数减去小于模的另一数,总可以用该数加上另一数负数的补码来代替

    eg:模为12,某数取10,另一数取4。

    所以,另一数负数为-4,另一数负数的补码为8,即:10 - 4 ≡ 10 + 8

  • 观察10 - 4 ≡ 10 + 8,发现减法竟然可以使用加法来进行代替。也即是说:补码实现了加法和减法的统一

运算器只有有限位,假设为n位,则运算结果只能保留低n位,故可看成是个只有n档的二进制算盘,因此,其模为2^n。

image-20211219143838121

求:负数的补码

  • 法一:对应的正数,按位取反,然后加一。
  • 法二:从右向左遇到第一个1前面的数按位取反。

eg:123 = 0111 1011B,求 -123

  • 法一:1000 0100 + 1 = 1000 0101
  • 法二:1000 0101

32位浮点数的表示范围

image-20211219152353682

image-20211219152255281

GB2312-80字符集

  • 由三部分组成
    1. 字母、数字和各种符号,包括英文、俄文、日文平假名与片假名、罗马字母、汉语拼音等共687个
    2. 一级常用汉字,共3755个,按汉语拼音排列
    3. 二级常用汉字,共3008个,不太常用,按偏旁部首排列
  • 汉字的区位码
    1. 码表由94行、94列组成,行号为区号,列号为位号,各占7位位号在右
    2. 指出汉字在码表中的位置,共14位,区号在左、
  • 汉字的国标码
    1. 每个汉字的区号和位号各自加上32(20H),得到其国标码
    2. 国标码中区号和位号各占7位。在计算机内部,为方便处理与存储,前面添一个0,构成一个字节
  • 可在GB2312国标码的基础上产生汉字内码为与ASCII码区别,将国标码的两个字节的第一位置“1”后得到一种汉字内码(可以有不同的编码方案)

字长的概念不同

  • 字长:指数据通路的宽度。等于 CPU 内部总线的宽度、运算器的位数、通用寄存器的宽度(这些部件的宽度都是一样的)

    数据通路:指 CPU 内部数据流经的路径以及路径上的部件,主要是 CPU 内部进行数据运算、存储和传送的部件,这些部件的宽度基本上要一致,才能相互匹配。

  • :表示被处理信息的单位,用来度量数据类型的宽度。

检测内存的大小端存储方式

image-20211219160803391