计算机组成原理03——计算机指令

计算机指令

CPU就是一个执行各种计算机指令的机器。计算机指令,就好比CPU能够听懂的语言,我们也可以把它叫做机器语言

不同的CPU能听懂的语言不一样。比如我们的个人电脑用的是Intel的CPU,苹果手机用的是ARM的CPU。这两者能听懂的指令就不一样。CPU能够支持的语言就是计算机指令集(Instruction Set)。

现代代码如何变成机器码

首先我们的代码要编译(Compile)成汇编代码(ASM,Assembly Language)。汇编代码再用汇编器(Assembler)翻译成机器码(Machine Code)。机器码就是由0和1组成的机器语言表示。机器码就是一条条计算机指令

计算机组成原理03——计算机指令_第1张图片

解析计算机指令和机器码

常见的指令可以分为五大类:

1.算术类指令。加减乘除。

2.数据传输类指令。给变量赋值,在内存里读写数据。

3.逻辑类指令。逻辑上的与或非。

4.条件分支类指令。“if/else”。

5.无条件跳转指令

汇编器如何把对应的汇编代码翻译成机器码?

不同的CPU有不同的指令集,也就对应着不同的汇编语言和不同的机器码。我们来看看最简单的MIPS指令集。
计算机组成原理03——计算机指令_第2张图片

MIPS的指令是一个32位的整数,高6位叫操作码,代表这条指令具体是个什么样的指令。

R指令一般做算术和逻辑操作,rs代表第一个寄存器的地址,rt代表第二个寄存器的地址,rd代表目标的临时寄存器的地址。如果是逻辑位移操作,有位移操作的位移量。最后的功能码就是前面操作码不够的时候,扩展操作码用的。

I指令通常用在数据传输、条件分支,以及在运算的时候使用的并非变量还是常数的时候。

J指令就是一个跳转指令。

add %t0,$s2,%s1

以上汇编代码对应MIPS指令里opcode是0,rs代表第一个寄存器s1的地址17,rt代表第二个寄存器s2的地址18,rd代表目标的临时寄存器t0的地址8。不是位移操作,所以位移量是0。把这些数字拼在一起,就变成了MIPS的加法指令。

你可能感兴趣的:(mips)