← 返回计算机组成原理目录
计算机组成原理指令系统#510

指令系统概述

596
目录 · 5 个章节

5.1 指令系统概述

定义

指令系统(ISA) 是软件与硬件之间的接口,规定 CPU 能执行哪些机器指令,以及指令如何编码、如何指定操作数、如何访问内存、如何影响机器状态。

指令系统可以理解为 CPU 对外暴露的 能力清单 + 使用规则。它不描述 CPU 内部具体怎么实现指令,那属于微架构层面的内容。

机器指令的层次

执行链路:高级语言程序 → 汇编指令 → 机器指令 → CPU 取指、译码、执行。

层次说明
高级语言语句编译器和人理解
机器指令ISA 层面对外可见,CPU 可译码执行
微操作CPU 内部实现一条机器指令的细粒度动作

机器指令是编译器和硬件之间的可见接口;微操作是 CPU 内部控制逻辑为完成机器指令而拆出的动作。

指令格式

机器指令通常由 操作码字段地址码字段 组成:

  • 操作码:说明“做什么”,如加法、访存、跳转。
  • 地址码:说明“操作数在哪里”,可能指向寄存器、内存,也可能配合寻址方式得到有效地址。

指令格式的核心权衡:

  • 操作码位数多:可表示的指令种类多,但地址字段通常变短。
  • 地址码位数多:地址范围大,但可表示的操作种类通常减少。
  • 指令字长有限,本质是在二进制位中分配“操作类型”和“操作数位置”。

地址码个数

类型典型含义特点
三地址C <- A + B表达直接,地址字段多,指令较长
二地址A <- A + B指令较短,结果常写回源操作数
一地址隐含 ACC依赖累加器,通常需要多条指令
零地址隐含栈顶适合栈式机器,访栈次数较多

考点

  • 操作码 nn 位:最多表示 2n2^n 种操作。
  • 地址码 mm 位:最多表示 2m2^m 个地址。
  • 二地址指令可能覆盖源操作数;一地址指令通常隐含 ACC;零地址指令通常隐含栈顶。
  • 指令格式、操作码长度、地址码个数、定长/扩展操作码,本质都在解决有限指令字长下的信息分配问题。

讨论

0 条评论

登录后参与讨论

登录后可以发布评论、回复和点赞。

暂无评论。

x1a0Y4NGren's Blog

一个计算机学生的学习记录、算法题解与个人知识管理。

RSS