课程链接:深入浅出计算机组成原理_组成原理_计算机基础-极客时间
一、计算机指令
1、指令
从软件工程师的角度来讲,CPU就是一个执行各种计算机指令(Instruction Code)的逻辑.。
这里的计算机指令,也可以叫做机器语言。
不同的CPU支持的机器语言不同,如个人电脑用的是Intel的CPU,苹果手机用的是ARM的CPU,这两种CPU各自支持的语言就是两组不同的计算机指令集。
一个计算机程序,是由成千上万条指令组成的,但是CPU里不能一直放着所有指令,所以计算机程序平时是存储在存储器中的。这种程序指令存储在存储器里的计算机,就叫做存储程序型计算机(Stored-program Computer)(现代计算机出世之前,有一种插线板计算机,是不能存储程序的,工程师在一个布满了各种插口合插座的板子上,用不同的电线来连接不同的插口合插座,从而完成各种计算任务)
程序编译成汇编语言,再由编译器翻译成机器码,一条机器码,就是一条计算机指令。
不同的 CPU 有不同的指令集,也就对应着不同的汇编语言和不同的机器码
常见的指令可以分为五大类
- 算术类指令:加减乘除
- 数据传输类指令:给变量赋值,在内存里读写数据
- 逻辑类指令:逻辑上的与或非
- 条件分支类指令:if-else
- 无条件跳转指令:函数调用
2、指令跳转
拿 Intel CPU 来说,里面差不多有几百亿个晶体管,先不管几百亿的晶体管的背后是怎么通过电路运转起来的,逻辑上,我们可以认为,CPU 其实就是由一堆寄存器组成的。而寄存器就是 CPU 内部,由多个触发器(Flip-Flop)或者锁存器(Latches)组成的简单电路(触发器和锁存器,其实就是两种不同原理的数字电路组成的逻辑门)。
N 个触发器或者锁存器,就可以组成一个 N 位(Bit)的寄存器,能够保存 N 位的数据ÿ