计算机组成原理_指令

计算机组成原理总目录

指令

指令:指控制计算机的最小操作单位,其功能是指挥计算机进行一系列的操作来完成某个功能
就像我们命令机器人抬起右脚,然后放下右脚,抬起左脚,放下左脚,机器人通过这一系列的命令完成了行走的功能

指令系统:一台计算机所有指令的集合构成了指令系统,也称为指令集
对于不同的指令系统,他们是无法相互兼容的,常见的指令系统有Intel的x86架构,以及手机的ARM架构

两种指令集系统:

  • CISC:复杂指令集计算机(Complex Instruction Set Computer),其中的每一条指令能够完成较为复杂的功能,主要用于x86架构的笔记本和台式机中
    特点:电路设计复杂,指令系统复杂、庞大,一般大于200条,指令字长不固定,难以优化指令,各指令执行时间差距较大
  • RISC:精简指令集计算机(Reduced Instruction Set Computer),其中的每一条指令只能完成最为基本的功能,只有设计多条指令才能完成较为复杂的功能,主要用于ARM架构的手机和平板中
    特点:电路设计简单,指令系统简单、精简,一般小于100条,指令字长定长,大多在一个周期内完成,只有Load/Store指令访存

1. 指令的作用

指令由【操作码】和【地址码】构成

  • 操作码:规定该指令是执行的是什么操作,例如数据【0001】代表着加法,【0010】代表减法等等
  • 地址码:规定该指令操作对象的地址位置

计算机组成原理_指令_第1张图片
一个完整的程序包括数据部分和指令部分存储在主存中,在程序执行的时候首先要读取指令,再根据指令内容进行对应的操作
假设【0000 1000】为取数操作:

  • 取指令阶段:PC = 0,读取主存位置为0的指令到指令寄存器IR中(PC自动+1,用于读取下一条指令)
    最后指令寄存器交由控制单元CU识别后得到该指令为取数操作

    计算机组成原理_指令_第2张图片
  • 取数阶段:根据控制单元得到的是取数操作,则将地址码交给 MAR =【0000 0100】,从而读取主存地址为(4)内的数据 = 【0000 0000 0000 0011】
    计算机组成原理_指令_第3张图片

2. 操作码

操作码代表了计算机的各种操作,而这些操作的分类如下:

  1. 数据传送:
    (1)Load:将【存储器】的数据加载到【寄存器】中
    (2)Store:将【寄存器】的数据存储到【存储器】中
  2. 算术逻辑操作:
    (1)算术运算:加、减、乘、除、加一、减一、求补码等
    (2)逻辑运算:与、或、非、异或等
  3. 移位操作:
    算术移位、逻辑移位、循环移位
  4. 转移操作:
    无条件转移、条件转移、陷入指令等

3. 地址码

0. 零地址指令:无地址码,如空操作、停机、关中断等等
且零地址指令用于堆栈计算机,两个操作数放在栈顶和次栈顶,计算结果压回栈顶
计算机组成原理_指令_第4张图片

1. 一地址指令:地址码仅包含一个地址

  • 只对单个数据进行操作:如加一、减一、取反等操作
    例如将A1地址的数据【x】取出后加一,然后将【x+1】放回地址为A1的内存中
    访存次数 = 3次:【取指令】、【读A1】、【写A1】
    计算机组成原理_指令_第5张图片
    计算机组成原理_指令_第6张图片
  • 对两个数据进行操作:其中另一个数存在与CPU的寄存器中,例如ACC累加寄存器
    访存次数 = 2次:【取指令】、【读A1】
    计算机组成原理_指令_第7张图片
    注意:A1代表地址,(A1)代表地址A1中的数据

2. 二地址指令:地址码部分包括两个地址,用于两个数据的算术运算以及逻辑运算

  • 例如:取出地址A1和地址A2的两个数,进行加法运算,得到的结果放回A1地址中

访存次数 = 4次:【取指令】、【读A1】、【读A2】、【写A1】

计算机组成原理_指令_第8张图片

3. 三地址指令:地址码部分包括三个地址,和二地址指令不同在于最后得到的结果存放在第三个地址中
访存次数 = 4次:【取指令】、【读A1】、【读A2】、【写A3】
计算机组成原理_指令_第9张图片

4. 四地址指令:地址码部分包括四个地址,第四个地址代表着下一条指令的地址,常用于指令的跳转

  • 例如执行完第十条指令后重新跳转到第一条指令,从而实现了循环的过程,就像代码的循环语句

访存次数 = 4次:【取指令】、【读A1】、【读A2】、【写A3】
计算机组成原理_指令_第10张图片

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