【计算机系统组成】指令系统知识要点

计算机的软件就是指令的排列组合。
从指令开始向上看,汇编语言使用简单的单词缩写代替了指令,汇编编译器将汇编语言翻译成指令,形成计算机运行的程序。再向上看,各种高级语言,比如C语言,将C代码利用C编译器编译成汇编语言,然后再用汇编的机器翻译成机器指令,形成动态的程序。更有甚者,如Python,本身就是C语言写成的,Py代码有一个解释器,且无法执行多线程的,解释器将Py代码解释成pyc代码,然后编译成汇编语言,然后再转成指令集合,供计算机使用。
从指令向下看,一条指令可以分解成各种微指令,微指令有自己的微指令系统,这些指令是硬件可以直接执行的。

然而现在的大多数机器都有OS,OS处于指令和汇编语言之间,提供了一层计算机管理调度使用的平台。所以,整体看来,从硬件可以直接执行的微指令,到最高级的语言,中间经过了好几层的转换和翻译。

一、 指令系统

一条指令包括两部分:操作码和地址码,这个和IO指令有所区别就是IO指令的第二部分不是地址,而是命令码。
指令也是存储在内存中的,可以被调用的信息。
根据指令的不同,可以分为零地址指令、一地址指令、二地址指令、三地址指令。像多地址指令,很多都可以分解为微指令,也就是其他指令的组合。

指令字长一般都是8的倍数。这里要区分一个概念,指令字长、机器字长、存储字长并不一定都相等。

二、 常见指令

也就是操作类型,到底计算机里可以进行哪些动作:
1、 数据传送:读、写、出入栈等等;
2、 算数逻辑:也就是原码、反码、补码,定点、浮点,加减乘除等等。
3、 移位:位运算。
4、 转移:即指令的跳转,经常在逻辑判断中用。
5、 调用返回:也就是常见的循环和递归。
6、 陷阱指令:程序中的捕获异常类似。
7、 输入输出:可类比为print函数,只不过print是将数据从主存输出到IO中,而指令的输出是从CPU的ALU单元输出到内存中。
8、 其他一些指令。

三、 指令寻址方式

指令中的地址的存放方法多种多样,但是指令中的地址分为寻址特征和形式地址两种,所以主要的方法有:
立即寻址:也就是形式地址就是真实的要找的数据,避免了访问寄存器、内存等等;寻址特征标明了到底是哪种地址;
直接寻址:形式地址就是真实地址,可拿去访问内存。
隐含寻址:形式地址在经过一个算数才能得到真实地址。
间接寻址:给出地址,但是还要从主存中的地址对应的数据中找出地址,也就是,找两层地址。
还有很多其他方法,由于平时工作不需要,我只是总结对计算机有个整体认识,这里就不列出了,因为真的好多啊。

四、 常见指令格式

各种大公司开发了很多版本和标准的指令系统,最常见的还是Intel8086的指令系统了吧。

五、 RISC

在经过多年的复杂指令系统发展失败之后,现在流行简单指令系统。它是一种指令系统的设计风格。

你可能感兴趣的:(计算机,指令系统)