计算机系统基础知识:指令系统简介


CPU 所能完成的操作是由其执行的指令决定的,这些指令称为机器指令。CPU 能执行的所有机器指令的集合称为该 CPU的指令系统。
指令系统设计的好坏、功能的强弱,会对整个计算机产生很大的影响,指令系统是计算机中硬件与软件之间的接口。

1. 指令格式

指令是指挥计算机完成各种操作的基本命令。一般来说,一条指令包括两个基本组成部分:操作码和地址码。基本格式如下:
在这里插入图片描述
操作码用二进制编码来表示,该字段越长,所能表示的指令就越多。若操作码的长度为 n,则可表示的指令为2"条。根据指令中地址码的数量,指令格式分为以下几种:

  1. 三地址指令格式
    在这里插入图片描述
    其中,OP 为操作码;A1、A2、A;分别是源操作数 1、源操作数 2 和目的操作数的地址。该类指令实现的操作是:(A1)OP(A2)→(A3)。

  2. 二地址指令格式
    在这里插入图片描述

  3. 一地址指令格式
    在这里插入图片描述
    在一地址指令中,只给出一个操作数的地址。若操作是针对一个操作数的指令,其操作为:OP(A)→(A);若操作是针对两个操作数的一地址指令,通常另一个操作数是隐含的(另个操作数在累加器 AC 中),其操作为:(AC)OP(A)→(AC)。

  4. 零地址指令格式:零地址指令只有操作码,不含操作数地址。
    在这里插入图片描述
    零地址指令在操作上分两种情况:一种是无操作数的控制操作,如空操作指令NOP、停机指令HLT 等;另一种是隐含有操作数,在指令中不体现。

2. 寻址方式

寻址方式就是如何对指令中的地址字段进行解释,以获得操作数的方法或获得程序转移地址的方法,操作数的位置可能在指令中、寄存器中、存储器中或 IO 端口中。

  1. 立即寻址。操作数就包含在指令中。如ADD AX, 3048H
  2. 直接寻址。操作数存放在内存单元中,指令中直接给出操作数所在存储单元的地址。如ADD AX,[2000H]
  3. 寄存器寻址。操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名。
  4. 寄存器间接寻址。操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。
  5. 间接寻址。操作数存放在内存单元中。
  6. 基址寻址。操作数存放在内存单元中。指令中操作数地址码给出基址寄存器和一个偏移量(可正可负),操作数的有效地址为基址寄存器的内容加上偏移量。
  7. 变址寻址。操作数存放在内存单元中。操作数的有效地址等于变址寄存器的内容加偏移量。

3. 指令种类

  1. 数据传送类指令;将数据从一个地方传送到另一个地方。包括:数据传送指令、数据交换指令和堆栈操作指令。

  2. 输入/输出类指令
    这类指令用于实现主机与外设间的信息传送,包括数据的输入/输出、主机向外设发出控制命令以及输入外设的状态。

  3. 算术运算类指令
    这类指令支持 CPU 实现加、减、乘、除等算术运算。主要包括加法、减法、乘法、除法、求补、加 1、减1和比较等指令。

  4. 逻辑运算类指令
    这类指令支持 CPU 实现各种逻辑运算。一般的 CPU 都会设置逻辑运算指令,主要包括与、或、异或、取反等指令。

  5. 移位操作指令
    根据移位的方向,当操作数的各位顺序向左移动一位称为左移,同样,当操作数的各位顺序向右移动一位称为右移。移位指令一般可分为算术移位、逻辑移位和循环移位3种类型。

    • 算术移位:对带符号操作数进行移位。
      在这里插入图片描述

    • 逻辑移位:对无符号操作数进行移位
      在这里插入图片描述

    • 循环移位:分为不带进位的循环移位和带进位的循环移位
      在这里插入图片描述
      在这里插入图片描述

  6. 程序控制类指令
    程序控制类指令用于改变指令执行的顺序和控制流的方向。包括:跳转指令、子程序调用和返回指令、陷阱指令。

  7. 串操作类指令:用于处理大量的字符串信息。

  8. 处理机控制类指令:对CPU实施控制。

  9. 数据转换类指令:设置数据转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值