0%

组成原理-指令系统

指令系统

  • 指令要求计算机完成什么功能? - - - -设置操作码
  • 指令要求计算机处理什么数据? - - - -设置数据源/目
  • 计算机怎样得到要处理的数据? - - - -设置寻址方式

不同地址数量的指令

分为三地址指令、双地址指令、单地址指令、零地址指令

①三地址指令:一般地址域中A1、A2分别确定第一、第二操作数地址,A3确定结果地址。下一条指令的地址通常由程序计数器按顺序给出。

②二地址指令:地址域中A1确定第一操作数地址和结果地址,A2确定第二操作数地址。

③单地址指令:地址域中A 确定第一操作数地址。固定使用某个寄存器存放第二操作数和操作结果。因而在指令中隐含了它们的地址。

④零地址指令:在堆栈型计算机中,操作数一般存放在下推堆栈顶的两个单元中,结果又放入栈顶,地址均被隐含,因而大多数指令只有操作码而没有地址域。

三地址指令 操作码op address1 address2 address3 (address1) op (address2)-> (address3)
双地址指令 操作码op address1 address2 (address1)op (address2)-> (address1)or(address2)
单地址指令 操作码op address1 (address1)op ->(address1) (address1)op(ACC)-> (address1)

零地址指令:

  1. 机器指令无地址码
  2. 空操作、停机操作、中途返回

寻址方式及指令寻址

顺序寻址

CPU中设置有PC计数器。注意PC+1中的1是一条指令的长度,不是一个字节。

跳跃寻址

就是JMP。

操作数寻址方式

立即数寻址

地址码字段就是操作数本身。

优点:因为将数据和指令一并送入CPU内部的寄存器中,执行指令速度快。便于程序设计。,不需要访问内存

缺点:数据大小受字段位数限制。

MOV AX .2000H

寄存器寻址

操作数已经在CPU的内部寄存器中。

优点:执行速度快。不需要访问内存

缺点:能访问的数据大小一般与计算机字长有关。也受寄存器数量限制

MOV AX ,BX

直接寻址

地址码字段直接给出操作数在内存的地址。

特点:提供了访问主存的操作。

缺点:速度慢。地址字段的位数决定了访问空间大小

MOV AX ,[2000H]

间接寻址

地址码字段给出的是操作数地址的地址。第一次访问主存:获得操作数的地址。第二次访问主存:获得操作数。

明显用速度换访问空间。

MOV AX ,[SOMETHING] //something在内存中。

寄存器间接寻址

地址码字段给出的是寄存器编号。也是两次访问:第一次访问寄存器:获得操作数地址。第二次访问主存:获得操作数。

例如:MOV AL , [BX]

相对寻址

可用于跳转指令。

有效地址为程序计数器PC中的内容+指令中的形式地址。

注意:因为在执行指令的时候,PC会变。这里取的PC的值是下一条将要执行指令的地址。

基址寻址

指定一个基址寄存器,与本指令地址无关。

例如:MOV AX ,32[B]

变址寻址

MOV AX , 32[SI]

可以用在循环中。

和基址寻址的不同点是SI是可以修改的。基址B是不可修改的。

指令格式设计

  • 根据指令数量的要求是否支持操作码扩展,确定操作码字段的位数
  • 根据对操作数的要求确定地址码字段的个数
  • 根据寻址方式的要求,为每个地址码字段确定寻址方式字段位数
  • 确定采用定长指令还是变长指令

例题:

MIPS指令概述

只有三种指令格式

  • R型指令

操作数只能来自寄存器,运算结果也只能存入寄存器。是RR型指令

如果表示移位运算,则表示对Rt的内容进行移位,所移位数有shamt确定。

  • I型指令

立即数指令。

  • J型指令

无条件转移指令。无条件转移的目标地址有PC高4位与26位直接地址左移后的值拼接而成。

注意:不单设寻址方式说明字段。

每一条指令都只有一种寻址方式。

寻址方式

立即数寻址

目标寄存器在右边,源寄存器在左边 和汇编语言恰好相反???

image-20191224210907954

寄存器直接寻址

基址寻址

相对寻址

MIPS指令详解

R型指令

三种不同类型

I型指令

J型指令