📒
考研计算机组成原理笔记
  • 408机组考察范围
  • 第一章 计算机系统概述
    • 1.1 计算机发展历程
    • 1.2 计算机系统层次结构
    • 1.3 计算机的性能指标
  • 第二章 数据的表示和运算
    • 2.1 数制与编码
    • 2.2 定点数的表示与运算
    • 2.3 浮点数的表示和运算
    • 2.4 算数逻辑单元(ALU)
  • 第三章 存储系统
    • 3.1 存储器概述
    • 3.3 半导体随机存储器
    • 3.4 主存储器与CPU的连接
    • 3.5 双端口RAM和多模块存储器
    • 3.6 高速缓冲存储器
    • 3.7 虚拟存储器
  • 第四章 指令系统
    • 4.1 指令格式
    • 4.2 指令的寻址方式
    • 4.3 CISC和RISC
    • 4.4 程序的机器级代码
  • 第五章 中央处理器
    • 5.1 CPU的基本功能和结构
    • 5.2 指令执行过程
    • 5.3 数据通路的功能和基本结构
    • 5.4 控制器的工作原理和功能
    • 5.5 指令流水线
    • 5.6 多处理器
  • 第六章 总线
    • 6.1 总线概述
    • 6.2 总线仲裁
    • 6.3 总线操作和定时
    • 6.4 总线标准
  • 第七章 I/O系统
    • 7.1 I/O系统的基本概述
    • 7.2 外部设备
    • 7.3 I/O接口
    • 7.4 I/O方式
由 GitBook 提供支持
在本页
  • 4.1.1 指令的基本格式
  • 1、按照地址码数量分类
  • 2、按照指令长度分类
  • 3、按照操作码长度分类
  • 4、按照操作类型分类
  • 4.1.2 扩展操作码指令格式
  • 扩展操作码举例

这有帮助吗?

  1. 第四章 指令系统

4.1 指令格式

上一页3.7 虚拟存储器下一页4.2 指令的寻址方式

最后更新于2年前

这有帮助吗?

指令是指示计算机执行某种操作的命令, 是计算机运行的最小功能单位。

一台计算机的所有指令的集合构成该机的指令系统,也称为指令集。

4.1.1 指令的基本格式

指令是一段有意义的二进制码,包括两个部分:操作码字段和地址码字段。

操作码:指令要进行什么操作,具有何种功能

地址码:被操作信息的地址

1、按照地址码数量分类

(1)零地址指令

  • 不需要操作数,如空操作、停机、关中断等指令

  • 堆栈计算机,两个操作数隐含存放在栈顶和次栈顶,计算结果压回栈顶

(2)一地址指令

  • 只需要单操作数,如加1、减1、取反、求补等

指令含义:OP(A1)→A1\text{OP}(A_{1})\to A_{1}OP(A1​)→A1​

完成一 条指令需要3次访存:取指→读A1→写A1

  • 需要两个操作数,但其中一个操作数隐含在某个寄存器(如隐含在ACC)

完成一条指令需要2次访存:取指→读A1

A1指某个主存地址

(A1)表示A1所指向的地址中的内容

(3)二地址指令

需要两个操作数的算术运算、逻辑运算相关指令

完成一条指令需要访存4次:取指→读A1→读A2→写A1

(4)三地址指令

需要两个操作数的算术运算、逻辑运算相关指令

完成一条指令需要访存4次:取指→读A1→读A2→写A3

(5)四地址指令

与三地址指令相同,A4中存放下一条要执行的指令的地址。

一般来说,程序执行完毕后,会将PC(程序计数器)+1

而四地址指令会将PC的值置为A4

2、按照指令长度分类

指令字长:一条指令的总长度(可能会变)

机器字长:CPU进行一次整数运算所能处理的二进制数据的位数(通常和ALU直接相关)

存储字长:一个存储单元中的二进制代码位数(通常和MDR位数相同)

半字长指令、单字长指令、双字长指令:指令长度是机器字长的多少倍。指令长度影响取指令的时间。

定长指令字结构:指令系统中所有指令的长度都相等

变长指令字结构:指令系统中各种指令的长度不等

3、按照操作码长度分类

定长操作码:指令系统中所有指令的操作码长度都相同

  • 译码电路设计简单

  • 灵活性较差

可变长操作码:指令系统中各指令的操作码长度可变

  • 译码电路设计复杂

  • 灵活性高

4、按照操作类型分类

(1)数据传送类

进行主存与CPU之间的数据传送

  • LOAD:把存储器(源)中的数据放到寄存器(目标)中

  • STORE:把寄存器(源)中的数据放到存储器(目标)中

(2)运算类

  • 算数逻辑运算

    • 算术:加、减、乘、除、增1、减1、求补、浮点运算、十进制运算

    • 逻辑:与、或、非、异或、位操作、位测试、位清除、位求反

    • 算术移位、逻辑移位、循环移位(带进位和不带进位)

(3)程序控制类

改变程序执行的顺序

  • 无条件转移:JMP

  • 条件转移

    • JZ:结果为0

    • JO:结果溢出

    • JC:结果有进位

  • 调用和返回:CALL和RETURN

  • 陷阱(Trap)与陷阱指令

(4)输入输出操作

CPU寄存器与I/O端口之间的数据传送(端口即I/O接口中的寄存器)

4.1.2 扩展操作码指令格式

扩展操作码指令格式采用定长指令字结构+可变长操作码结构

扩展操作码举例

设指令字长为16位,每个地址码占4位

例:指令字长为16位,设计一套有15条三地址指令、12条二地址指令、62条一地址指令、32条零地址指令的指令系统。

  • 地址长度:16bit/4=4bit

  • 三地址指令

    • 16-3*4 = 4bit 操作码

  • 二地址指令

    • 头部必须为1111,16 - 4 - 2*4 = 4bit

  • 一地址指令

    • 头部必须为1111 11,16 - 6 - 4 = 6bit

  • 零地址指令

    • 头部必须为1111 1111 111,16 - 11 = 5bit

  • 优点

    • 在指令字长有限的情况下保证了比较丰富的指令种类

  • 缺点

    • 增加了指令译码和分析的难度

    • 使控制器设计复杂

指令含义:(ACC)OP(A1)→ACC(ACC)\text{OP}(A_{1})\to ACC(ACC)OP(A1​)→ACC

指令含义:(A1)OP(A2)→A1(A_{1})\text{OP}(A_{2})\to A_{1}(A1​)OP(A2​)→A1​

指令含义:(A1)OP(A2)→A3(A_{1})\text{OP}(A_{2})\to A_{3}(A1​)OP(A2​)→A3​

n位操作码代表指令系统最大能够表达2n2^{n}2n条指令

用全部为1标识地址数量,因此实际可用指令数量为2n−12^{n}-12n−1

地址长度为n,上一层留下m种状态,则协议层可以扩展出m×2nm\times2^nm×2n种状态

24−15=12^4-15=124−15=1,剩余1111

24−12=42^4-12=424−12=4,剩余1100、1101、1110、1111,头两位全部为11

26−62=12^6 - 62 = 126−62=1,剩余111110

25−32=02^5 -32=025−32=0,分配完毕

移位操作