【计算机组成与结构】指令系统

指令:计算机运行的最小的功能单位。

指令系统:一台计算机中所有的指令的集合。

计算机性能与指令系统有关,指令系统与计算机的硬件结构密切相关。


指令系统的发展


指令格式

 计算机的指令格式与机器的字长存储器的容量以及指令的功能有关

 一条指令包括

操作码

操作数的地址

操作结果的存储地址

下一条指令的地址( 由程序计数器(PC)指出,仅当改变程序的运行顺序时,下条指令的地址才由指令给出。)

指令地址的格式:

  • 零地址指令

操作码格式:操作码

  •  一地址指令

指令格式:操作码|A

  •  二地址指令

指令格式:操作码|A1|A2

A1:第一个源操作数的存储器地址或寄存器地址。

A2:第二个源操作数和存放操作结果的存储器地址或寄存器地址。

  •  三地址指令

指令格式:操作码|A1|A2|A3

A1:第一个源操作数的存储器地址或寄存器地址

A2:第二个源操作数的存储器地址或寄存器地址

A3:操作结果的存储器地址或寄存器地址

 我的理解是最后一个操作码作为存储操作结果的,剩余操作码越多,源操作数数量可以越多。

  • 多地址指令

此类指令功能强大,用于处理成批的数据,例如字符串处理指令、 向量指令等等,为了描述这些数据, 指令中需用多个地址来指出数据存放的首地址、长度、下标等。

  • 优缺点比较

零地址、 一地址和二地址指令具有指令短,执行速度快,硬件实现简单等优点

二地址、三 地址和多地址指令具有功能强,便于编程等优点,但硬件实现比较复杂。

  • 识别指令和数据

都是以二进制形式存储,指令地址由程序计数器规定,数据地址由指令规定。


指令操作码的扩展技术

指令操作码的长度决定了指令系统中完成不同操作的指令条数。

若指令的操作码长度为K位,则至多能表示2^k 条指令。

指令操作码的编码格式:固定格式 可变格式

 

 使用原则:使用频率高的指令应分配短的操作码,使用频率低的指令分配较长的操作码。


指令长度与字长的关系

指令的长度:一条指令中所包含的二进制代码的位数,它取决于操作码字段的长度、操作数地址的个数及长度。

字长:计算机能直接处理的二进制数据的位数。

指令长度:① 尽可能短 ② 等于字节的整数倍。指令长度可以等于机器字长,也可以大于或小于机器字长。

指令长度相等:定长指令字结构;

指令长度变化:指令长度随功能而异;


数据表示

按字节编址的双字数据的两种字节次序:

低字节为低地址

高字节为低地址


寻址方式

寻址方式:确定本条指令的数据地址以及下一条要执行的指令地址的方式

  • 立即数寻址

  •  直接寻址

  • 寄存器直接寻址

  • 间接寻址

 

 

 

(寄存器间接寻址取得操作数速度最慢)

  •  基址寻址

设置专用的基址寄存器/指令指定一个通用寄存器为基址寄存器。

基址寄存器的内容称为基址值,地址码A通常被称为位移量,位移量可正可负

基址寄存器中的值只能由系统程序设定。

 


变址寻址

操作数在存储器中的地址指令地址码部分给出的地址A指定的变址寄存器X的内容通过加法器相加得到。

需要频繁修改地址时,只要改变寄存器中的值就可以了。


 相对寻址

程序计数器PC提供基准地址,即PC中的内容加上指令的地址码部分给出的位移量的和为操作数的地址。

 操作数地址-指令地址=固定数值


堆栈寻址

略……


寻址方式总结

常用寻址方式:寄存器直接、寄存器间接寻址

 


指令类型

指令可完成功能:

算术逻辑运算指令、移位指令、浮点运算指令、 十进制运算指令、字符串处理指令、向量运算指令、数据传送指令、转移指令、 堆栈指令、输入输出指令及特权指令等


算术逻辑运算指令

①算术运算指令

通常的标志位有进位(C)、溢出 (V)、全零(Z)、负(N)、奇偶位(P)

②逻辑运算指令

与、或、非、异 或(按位加)等逻辑运算指令


移位操作指令

  •  算术移位:

操作数为带符号数

右移时填入高位的数据为操作数符号位数值

算术移位中左移一位,相当于数值乘2 (前提:无溢出),右移一位,相当于数值除2

  • 逻辑移位:

操作数为无符号数

逻辑右移时高位补零


 浮点数的运算指令


十进制运算指令


字符串处理指令

是一种非数值处理指令,一般包括字符串传送、字符串比较、字符串查询、字符串转换等指令。


 数据传送指令

用于实现寄存器与寄存器、 寄存器与存储单元、存储单元与存储单元之间的数据传送。

数据传送时,数据从源地址传送到目的地址,而源地址的数据保持不变。


转移指令

用于控制程序流的转移。

多数情况下,程序是按顺序方式执行,有时候也会离开原来的顺序转移到另一段程序或循环执行某段程序。

按转移性质分类可分为:无条件转移、条件转移、过程调用与返回、陷阱等。

  • 无条件转移:不受任何条件约束,直接把程序转移到指令所规定的目的地。
  • 条件转移:根据计算机处理结果(条件是否满足)来决定程序如何执行。
  • 调用指令:执行完被调用的程序后要回到原调用程序,继续执行call指令的下一条指令。
  • 返回指令:配合使用的指令,返回指令取到返回指令后继续执行调用指令的下一条指令
  • 陷阱与陷阱指令:停止当前程序的执行,转去处理相应的故障。
  • 堆栈及堆栈操作指令:

堆栈指针:用于指出栈顶的地址的寄存器或存储单元

 

 


输入输出指令

用来实现主机与外部设备之间的信息交换


特权指令

定义:只能用于操作系统或者其他系统软件而不提供给用户使用 


其他指令

  1.  向量指令

  2. 多处理机指令

  3. 控制指令


    RISC和CISC

CISC:复杂指令系统

起因:计算机硬件成本的不断降低, 软件成本的不断提高。

特点:指令数量多,格式多样,寻址方式复杂。

优点:功能强大,程序设计容易。

缺点:控制器的实现困难。

RISC:精简指令系统

特点:指令数量少,使用频率高的指令; 指令长度固定,指令格式少;访问存储器的指令少等。

优点:运行速度快,控制器的实现简单。

缺点:功能简单。

(寻址方式比较少)

猜你喜欢

转载自blog.csdn.net/m0_45863636/article/details/121106923