计算机组成原理:指令集系统
- 指令集体系结构(ISA)
- ISA定义
- ISA包含的内容
- 举个栗子
- 指令的基本组成(操作码+地址码)
- 指令分类:地址码的个数
- 定长操作码
- 变长操作码
- 变长操作码的原则
- 变长操作码的设计
- 指令寻址
- 寻址方式的目的
- 寻址方式分类
- 有效地址直接在指令中给出
- 有效地址间接给出
- 有效地址计算得到
- 重点解析:无符号数+有符号数
- 指令设计风格
- RISC
- CISC
- 不同指令风格下的相对寻址
- CISC风格
- RISC风格
- 标志位生成
- 有符号数和无符号数加减法电路的统一性
- 选择题做法
- 无符号、有符号整数的大于0小于0判断
- MIPS基本指令
- 过程调用
- 过程调用过程
指令集体系结构(ISA)
ISA定义
计算机硬件与软件之间的接口。
可以把ISA视为封装好的函数的函数名;
软件通过直接使用函数名调用函数,但是并不关心这个函数是怎么具体实现的,不关心其硬件实现细节。
ISA(指令集体系结构)是硬件程序员给软件程序员提供的指令说明书,更像硬件与软件之间的一种约定。
ISA包含的内容
- 包含: 使用指令功能相关的全部信息
首先要告诉你有哪些指令,其次告诉你每条指令都什么含义,每条指令分为哪几个部分,每个部分什么意思。 - 不包含: 指令中的功能如何具体用硬件来实现
事实上,只要涉及到具体什么硬件,应该就不会包含在ISA中。
举个栗子
ISA包含:整数乘法相关的指令格式,比如可以实现2*3=c
但是不包含:ALU怎么实现的整数乘法,诸如靠加法+循环,或者是补码一位乘法(Booth算法)
问题:ISA包不包含指令的长度?包含。
2025年真题:
16题选择B,其他选项全是硬件相关的。
指令的基本组成(操作码+地址码)
要操作的数一般放在计算机中的哪个位置?
源操作数:计算机寄存器或内存中,或者直接给出(如立即数)
目的操作数:寄存器或内存
指令分类:地址码的个数
-
零地址指令 :指令只给出了操作码,没有给出地址码。例如:停机指令
-
单地址指令:自增指令,例如i++
该操作数既是源操作数,又是目的操作数。 -
二地址指令:一个操作码+两个地址码,r1+r2->r1
在二地址指令中,第一个地址默认为目的地址。
-
三地址指令:r1+r2->r3
定长操作码
指令种类一般是按照操作码的位数而言,先不考虑地址码的多少,只考虑有几种指令操作,确定操作码的位数。
地址码可以定长也可以变长。
变长操作码
在变长操作