• 指令系统——计算机组成原理


    指令系统

    4.1指令系统的发展与性能要求

    1. 指令系统的发展

      计算机的程序是由一系列的机器指令组成

      计算机的指令有微指令机器指令宏指令之分。

      微指令是微程序级的命令,属于硬件;

      宏指令是由若干机器指令组成的软件指令,属于软件;

      机器指令介于微指令与宏指令之间,通常简称为指令

      一台计算机上的所有机器指令的集合成为这台计算机的指令系统

      有CISC和RISC之分,前者是复杂指令系统计算机,后者是精简指令系统计算机

    2. 指令系统的性能要求

      (1)完备性:指令足够使用

      (2)有效性:程序占据存储空间小、执行速度快

      (3)规整性:包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性

      (4)兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集

    3. 低级语言与硬件结构的关系:略

    4.2指令格式

    机器指令是用机器字来表示的。表示一条指令的机器字成为指令字,简称指令。

    指令格式,是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成

    操作码字段:OP;

    地址码字段:A

    1. 操作码

      OP表示该指令应进行什么性质的操作,如加、减、乘、除等。

      一般来说,一个包含n位的操作码最多能够表示 2^n 条指令

    2. 地址码

      根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令

      有零地址指令、一地址指令、二地址指令和三地址指令

      在二地址指令格式中,可以归结为三种类型:

      (1)访问内存的指令格式,称为存储器-存储器(SS)型指令,这种操作时都是涉及内存单元

      (2)访问寄存器的指令格式,称为寄存器-寄存器(RR)型指令

      (3)寄存器-存储器(RS)型指令

    3. 指令字长度

      一个指令字中包含二进制代码的位数,称为指令字长度。

      机器字长是指计算机能直接处理的二进制数据的位数,决定了计算机的运算精度。机器字长通常与主存单元的位数一致。

      指令字长度等于机器字长度的指令,称为单字长指令;等于半个机器字长的指令,称为半字长指令;等于两个机器字长度的指令,称为双字长指令

    4. 指令助记符

      硬件只能识别1和0,操作码在机器上都有对应的二进制代码。便于书写和阅读,用英文的缩写代替,缩写码叫做指令助记符,如ADD、SUB、MOV、JMP等

    例题:

    指令格式如下,OP为操作码,试分析指令格式的特点
    |15    9|      |7         4|3          0|
    |   OP  |  ——  |  源寄存器  |  目标寄存器  |
    
    解:
    (1)单字长的二地址指令
    (2)操作码字段OP可以指定2^7=128条指令
    (3)源寄存器和目标寄存器都是通用寄存器,可分别指定16个,RR型指令
    (4)常用于算术逻辑运算类指令
    
    
    指令格式如下,分析指令格式特点
    |15     10|        |7         4|3           0|
    |   OP    |   ——   |  源寄存器  |  变址寄存器  |
    |              位移量(16位)                  |
    
    解:
    (1)双字长二地址指令,用于访问存储器
    (2)OP为6位,可以指定64种指令
    (3)一个操作数在源寄存器中,目标操作数在存储器中(由变址寄存器和位移量决定),RS型指令
    

    4.3操作数类型

    4.4指令和数据的寻址方式

    存储器既可以存放数据,也可以存放指令。

    寻址方式分为两类,指令寻址方式和数据寻址方式。

    冯.诺依曼型结构的计算机中,内存中指令的寻址与数据的寻址是交替进行的

    哈佛型计算机中指令寻址和数据寻址是独立进行的

    (1)指令的寻址方式

    有顺序寻址和跳跃寻址之分

    (2)操作数基本寻址方式

    形成操作数的有效地址的方式,称为操作数的寻址方式

    有 隐含寻址、立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、偏移寻址(相对寻址(使用PC)、基址寻址、变址寻址)

    段寻址方式 :基地址+偏移量

    4.5典型指令

    • MOV 传送
    • STO 存数 : 由CPU向存储器传送字
    • LAD 取数 : 由存储器向CPU传送字
    • EXC 交换 : 源和目标交换内容
    • CLA 清零
    • SET 置1
    • PUS 进栈
    • POP 退栈
    • ADD、SUB、MUL、DIV、ABS、NEG(变负)、INC(增量,操作数加1)、DEC(减量,操作数减一)
    • AND、OR、NOT、EOR(异或)、TES(测试)、COM(比较)、SHI(移位)、ROT(循环移)
    • JMP、JMPX(条件转移)、JMPC(转子)、RET(返回)
    有缘再见
  • 相关阅读:
    [笔记]流行数据库SQL差异分析之“不从实体表中取得数据”
    如何评价架构的优劣(转)
    Entity Framework 学习总结之一:ADO.NET 实体框架概述
    [笔记]流行数据库SQL差异分析之“自动增长字段”
    Entity Framework 学习总结之十:加载相关对象
    Entity Framework 学习总结之九:LinqToEntities
    Entity Framework 学习总结之二:数据访问区别
    3、网站前端优化11条笔记汇总
    Entity Framework 学习总结之八:EntitySQL 复杂查询及函数
    Entity Framework 学习总结之七:EntitySQL 基本查询
  • 原文地址:https://www.cnblogs.com/lambdaCheN/p/7766853.html
Copyright © 2020-2023  润新知