计组-4.1 指令系统
4.1 指令系统
前言

指令系统是控制器部分的内容。
控制器和运算器组成了CPU。


指令集体系结构(ISA)
ISA是软件和硬件之间接口的完整定义,包含了:基本数据类型,指令集,寄存器,寻址模式,储存体系,中断和异常处理及外部I/O
一台计算机所有的指令的集合构成该机的指令系统,由叫指令集。
一台计算机只能执行自己指令系统的指令,不能执行其他系统的指令。eg PC的x86架构,手机的ARM架构
==指令的基本格式==
操作码+地址码
操作码 :给出指令/操作
地址码 :对谁操作/操作对象(给出被操作数据/指令的地址)
指令字长 – 指令长度
- 单字长指令,双字长指令(存取需两次访存),半字长指令(指令长度=半个机器字长)
指令分类
==**A. ** 按地址码数目(需要几个操作数)不同:==
零地址指令
- 只有操作码OP
- when:
- 不需要操作码的指令(空操作/停机指令…
- 用在堆栈中的运算类指令。
一地址指令
when:
- OP(A₁)→A₁【只需要一个操作数,eg加1,求反…】(3次访存,取指,读A1,写A1)
- (ACC)OP(A₁)→ACC【两个操作数,但隐含另一个操作数由ACC累加器提供】(2次访存,取指,读A1)
- 【A₁表示主存地址,(A₁)表示A₁所指向的地址的内容】
二地址指令
- when:
- (A₁)OP(A₂)→A₁【用于需要两个操作数的指令】(完成一条指令需要 4 次访存)
- when:
三地址指令
- when:
- (A₁)OP(A₂)→A₃(完成一条指令需要 4 次访存)
- when:
四地址指令
- when:
- (A₁)OP(A₂)→A₃,A₄=下一条将执行指令的地址 (执行指令后,PC不是简单地+1,而是转到A₄所指的地址)
- 若指令字长32位,操作码占8位,4个地址码字段各占6位。
- 则每个操作数的直接寻址范围为2^6=64。若地址码均为主存地址,则完成一条四地址指令需要4次访存(取指令1,取两个操作数2,存结果1)
- when:
==B. 按指令长度==
- 定长指令字结构:指令系统中所有指令的长度都相等
- 变长指令字结构
==C. 按操作码长度==
定长操作码:n位操作码字段的指令系统最大能够表示2^n条指令
可变长度操作码
(留图)
==D. 按功能分类==
- 数据传送
- LOAD 把存储器中的数据放到寄存器中
- STORE 把寄存器中的数据放到存储器中
- 算术和逻辑运算
- 算术:加减乘除,自增,求补..
- 逻辑:与或非异或…
- 移位操作:算术移位,逻辑移位,循环移位。
- 转移操作:无条件转移(JMP),有条件转移,调用(CALL),返回(RET),陷阱(Trap)…
- 输出输入操作
扩展操作码
==B+C→扩展操作码==
定长指令字结构+可变长操作码!
指令长度不变,操作码长度 由地址码↓而↑
优点:丰富指令种类

attention:
- 不允许短码是长码的前缀
- 各指令的操作码一定不能重复

评论

