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

本文介绍了计算机指令的基本概念,包括CPU如何执行指令,以及现代代码如何通过编译和汇编过程转化为机器码。讲解了五大类指令:算术、数据传输、逻辑、条件分支和无条件跳转,并以MIPS指令集为例,详细阐述了指令的结构和转换过程。
摘要由CSDN通过智能技术生成

计算机指令

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

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

现代代码如何变成机器码

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

在这里插入图片描述

解析计算机指令和机器码

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

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

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

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

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

5.无条件跳转指令

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

不同的CPU有不同的指令集,也就对应着不同的汇编语言和不同的机器码。我们来看看最简单的MIPS指令集。
在这里插入图片描述

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的加法指令。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直饿着肚子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值