指令系统

华科计组mooc

基本概念

指令:计算机执行某种操作的命令

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

系列机:同一公司不同时期生产,基本系统结构和指令系统相同的计算机。各机种有共同的指令集能够解决软件兼容问题。

指令字长

指令字长:令中包含的二进制位数

与位数正相关
能表示的操作信息和地址信息
指令占用的存储空间
读取指令的时间
长指令优点缺点
扩大寻址范围或可以带几个操作数占用空间大,取指速度较慢
短指令优点缺点
占用空间较小,取指速度快寻址范围较小

定字长指令:指令字长固定

变字长指令:指令字长根据需要可变

操作数

机器中常见的操作数类型

  • 地址
  • 数字
  • 字符
  • 逻辑数据

根据指令中操作数的物理位置,可将指令分为:

类型访问主存次数
存储器 - 存储器(SS)型访问主存两次
寄存器 - 寄存器(RR)型不访问主存
寄存器 - 存储器(RS)型访问主存一次

操作码

操作码指出指令应该执行什么性质的操作和具有何种功能

定长操作码:一般固定n位操作码的指令系统最多能够表示2n条指令

变长操作码:

  • 当地址部分位数较多时,减少操作码位数;
  • 当地址部分位数较少时,增加操作码位数,增加指令种类。

地址码

根据指令中地址码字段的个数分为:
在这里插入图片描述

  • 三地址指令
    按A1和A2的地址读取操作数,按操作码OP运算,将结果存入A3地址指定的主存单元或寄存器。
  • 二地址指令
    A2称为源地址,A2提供的操作数,运算后保持不变。
    A1称为目的操作数地址,A1提供的操作数,运算后不保留,A1地址改用来存放运算结果。
  • 一地址指令
只有目的操作数的单操作数指令隐含约定目的地址的双操作数指令
单操作数指令:操作码含义是+1,-1,求反,求补一类双操作数指令:操作码含义是:+,-,*,/一类
按A1地址读操作数,进行OP操作,结果存回原地址按A1地址读源操作数,AC地址提供隐含的目的操作数,运算结果也存放在AC
  • 零地址指令
可能的情况举例
不需要操作数的指令空操作,停机
对累加器AC内容操作,AC为隐含约定

指令功能

操作类型举例
数据传送MOV、PUSH / POP(进栈出栈)、IN / OUT
算术运算ADD、SUB、INC、CMP、MUL
位运算AND、OR、NOT、OR、XOR
控制转移JMP、JNE、CALL、RET

指令格式

在这里插入图片描述

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

编址方式

  • 字编址:每个编址单位所包含的二进制位数与读或写一次寄存器、主存所获得的信息量相同。
优点缺点
控制方式实现简单不支持非数值应用
地址信息没有任何浪费
  • 字节编址
    编址单位与信息的基本单位(1个字节)相一致
优点缺点
适应非数值计算存在地址信息的浪费
  • 位编址
    主要优缺点与字节编址方式相同,但地址信息的浪费更大。

指令寻址方式

两种基本方式:

  • 顺序寻址
    指令地址在内存中按顺序排列,执行时从第一条指令开始(操作系统把程序从辅存写入主存时会提供第一条指令的地址)
    在CPU中设置程序计数器PC来计数指令的顺序号,该顺序号即指令在内存的地址。每执行一条指令,PC加1(1的含义是存储1条指令占用的字节单元数),指向下条指令的地址。
  • 跳跃寻址
    跳跃,是指下条指令的地址码不是PC给出的,而是本条指令给出,例如JMP。

操作数寻址方式

以8086为例

  • 立即数寻址
MOV AH,ACH

地址码字段是操作数本身,不需要访问主存,一般用来给变量赋初始值。数据字段的位数限制了立即数的范围

  • 寄存器寻址
MOV AL,BL

地址码字段指出寄存器编号,操作数在寄存器中,不需要访问主存。指明寄存器编号的做法使指令字较短(计算机中寄存器数量有限),节省存储空间。

  • 直接寻址
MOV AX,[1680H]

地址码字段直接给出操作数在内存的地址,不需要专门计算操作数的地址,地址码字段位数限制了操作数的寻址范围。

  • 间接寻址
    在这里插入图片描述
    地址码字段给出的是操作数主存地址的地址。访问内存取得操作数的地址,再由这个地址访问操作数(类比**p和*p)。扩大了操作数的寻址范围。

  • 寄存器间接寻址

MOV AX,[BX]

地址码字段给出的是寄存器编号,寄存器内存放的操作数是地址,通过这个地址访问主存。

  • 相对寻址
    在这里插入图片描述
    以PC的内容作为基准地址,指令给出的形式地址为位移量(可正可负),二者相加后形成操作数的有效地址(采用字节编址的机器,若采用双字节指令(16位),相加时要另外加2)。

  • 基址寻址
    在这里插入图片描述
    由B101(基址寄存器)提供基准量,指令给出形式地址(32)作为偏移量。可以扩大操作数的寻址范围。

  • 变址寻址

MOV CL,[SI+200H]

操作数地址为变址寄存器(SI)中的内容和位移量(200H)之和。

操作数寻址方式总结

方式优点 / 缺点
立即寻址快,能赋初值 / 不能访存,初值的大小受限制
寄存器寻址快,适合做算术逻辑运算 / 不能访存
直接寻址能访存 / 访存一次,慢,访存范围受限
间接寻址解决直接寻址范围受限的问题 / 访存两次,很慢
寄存器相对寻址解决直接寻址范围受限的问题 / 访问主存一次,慢
相对寻址节省指令中地址位数,便于程序在内存中成块移动 / 访存一次,较慢,且不能在循环中使用
变址寻址不改变指令即可改变数据的有效地址,可在循环中使用 / 访存一次,较慢
基址寻址提供更大范围的访存能力 / 慢,且不能在循环中使用

RISC和CISC

RISC(Reduced Instruction Set Computer,精简指令系统计算机)
CISC(Complex Instruction Set Computer,复杂指令系统计算机)

CISCRISC
指令多指令少
不同指令使用频率差异大不同指令使用频率大致相当
可变长指令定长指令
执行效率低执行效率高
实现复杂功能只需较少指令实现复杂功能需要较多指令
存储器寻址方式丰富存储器寻址方式单一
程序设计较简单程序设计较难
CPU电路更复杂,成本高CPU较简单,成本低
对程序编译器要求较低对程序编译器要求较高
posted @ 2020-04-10 15:44  LanceHansen  阅读(322)  评论(0编辑  收藏  举报