文档介绍:第5章指令系统
指令系统概述
指令格式
指令分类及功能
指令系统中的操作数类型
寻址方式
RISC和CISC计算机
不同指令系统介绍
返回
第5章指令系统
指令系统概述
指令系统:1台计算机所能执行的全部指令的集合。
指令系统的要求
完备性
有效性
完整性
兼容性
机器指令的基本要素:
操作码
操作数的地址
操作结果的存储地址
下一条指令的地址
返回
指令格式
一般格式:
操作码(OPCODE)
地址码(OPRAND)
计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大关系。
从机器指令的基本要素可知,一条指令包括两种信息:操作码和地址码。
操作码(operation code):用来表示指令所要完成的操作(如加、减、乘、除、数据传送等),其长度取决于指令系统中指令的条数。
地址码:用来描述指令的操作对象。或者直接给出操作数、或者指出操作数的存储地址或寄存器地址(即寄存器名)。
指令格式
零地址指令
格式:
OP, (PC)+1=>PC ;如: PUSHF, NOP
单地址指令
格式:
OP(A1)=>A1, (PC)+1=>PC
二地址指令
格式:
(A1)OP(A2)=>A1, (PC)+1=>PC
OP(操作码)
OP
A1
OP
A1
A2
根据地址码部分所给出地址的个数,指令格式可分为如下几种:
指令格式
三地址指令
格式:
(A1)OP(A2)=>A3, (PC)+1=>PC
四地址指令
格式:
多地址指令
某些大、中型机甚至高档小型机中,用于字符串处理指令,向量、矩阵运算指令等。
操作码第1操作数地址第二操作数地址结果操作数地址下一条指令地址
OP A1 A2 A3 A4
(A1) OP (A2) =>A3,(A4)=下一条指令地址, (PC)+1=>PC
OP
A1
A2
A3
指令在机器中的执行
指令周期状态图
指令集设计
指令集定义了CPU应完成的功能,它对CPU的实现有显著的影响;同时,指令集也是程序员控制CPU的方式,因此设计指令集时应考虑程序员的要求。
最基础的设计内容:
操作清单:提供多少和什么样的操作;
数据类型:对几种数据类型完成操作;
指令格式:指令的位数、地址的数目等等;
寄存器:能被指令访问的CPU寄存器数目及其作用;
寻址方式:指定操作数地址的产生方式。
指令操作码的设计
指令操作码的长度决定了指令系统中完成不同操作数的指令条数。如果某机器的操作码长度为K位,则它最多只能有2K条不同的指令。指令操作码通常有两种编码格式:
等长编码
IBM 370 : len (OP)=8 bits,256条指令
不等长编码
15/15/15扩展法
8/64/512扩展法
Huffman 编码法
15/15/15扩展法
机器字长位16位,用15/15/15扩展法可以设计一个具有15条三地址指令、15条双地址指令、15条单地址指令和16条零地址指令的指令系统。
0000 xxxx xxxx xxxx
1110 xxxx xxxx xxxx 1111 0000 xxxx xxxx
1111 1110 xxxx xxxx 1111 1111 0000 xxxx
1111 1111 1110 xxxx 1111 1111 1111 0000
1111 1111 1111 1111
OP A1 A2 A3
15条三地址指令
15条二地址指令
15条单地址指令
16条零地址指令
Huffman 编码法
基本思想
指令使用频度的不一致性;
信息量的概念
定义:信息量= -log2Pi (比特), Pi位信息出现的概率。
指令Ii在n条指令组成的程序中的信息量为:
- n*Pi*Log2Pi
n条指令组成的指令系统,在该程序中的全部信息量为:(- n*Pi*Log2Pi ),i=1…n
系统平均信息量(熵)
H=全部信息量/n= (-Pi*Log2Pi ),(比特)