王道 计组第四章指令系统 第一节笔记

指令格式

在这里插入图片描述

  • 机器语言是不需要经过翻译就可以被机器所理解的语言,也是计算机唯一能够识别的语言,本质上是计算机能够识别的二进制代码。他由一条条语句构成,每一条语句就是一条机器指令。
  • 我们把一台计算机的所有机器指令的集合叫做机器的指令系统
  • 一条机器指令执行一个基本操作 ex: 如传送数据 、 加法运算

指令

  • 指令是指示计算机进行某种操作的命令,是计算机运行的最小功能单位
  • 一台计算机的所有指令的集合构成该机的指令系统,也称为指令集
  • 注:一台计算机只能执行自己指令系统中的指令,不能执行其他系统的指令

指令格式

  • 一条指令就是机器语言的一个语句,他是一组有意义的二进制代码

  • 一条指令通常要包括操作码字段和地址码字段两部分:

  • 在这里插入图片描述

  • 一条指令可能包含0个、1个、2个、3个、4个地址码.根据地址码数目不同,可以将指令分为零地址指令、一地址指令、二地址指令.

指令分类(地址码数不同):

  1. 零地址指令 O P OP OP

    1. 不需要操作数,如空操作、停机、关中断等指令
    2. 堆栈计算机,两个操作数隐含存放在栈顶和次栈顶,计算结果压回栈顶
  2. 一地址指令 O P A 1 OP \quad A_1 OPA1

    1. 只需要单操作数,如加1、减1、取反、求补筹

      指令含义: O P ( A 1 ) − > A 1 OP(A_1)->A1 OP(A1)>A1 完成一条指令需要3次访存 :取指-》读A1-》写A1

    2. 需要两个操作数,但其中一个操作数隐含在某个寄存器(如隐含在ACC)

      指令含义: ( A C C ) O P ( A 1 ) − > A C C (ACC)OP(A_1)->ACC (ACC)OP(A1)>ACC

      注: A 1 A_1 A1指向某个主存地址, ( A 1 ) (A_1) (A1)表示 A 1 A_1 A1所指向的地址中的内容

      A 1 A_1 A1类比:c语言指针, ( A 1 ) (A_1) (A1)指针所指位置的内容

  3. 二地址指令 O P A 1 ( 目的操作数 ) A 2 (源操作数) OP\quad A_1(目的操作数) \quad A_2(源操作数) OPA1(目的操作数)A2(源操作数)

    1. 常用于需要两个操作数的算术运算、逻辑运算相关指令
      指令含义: ( A 1 ) O P ( A 2 ) → A 1 (A_1)OP(A_2)→A_1 (A1)OP(A2)A1
    2. 完成一条指令需要这存4次 取指>读A1→读A2→写A1
  4. 三地址指令 O P A 1 A 2 A 3 ( 结果 ) OP \quad A_1 \quad A_2 \quad A_3(结果) OPA1A2A3(结果)

    • 常用于需要两个操作数的算术运算、逻辑运算相关指令

    ​ 指令含义: ( A 1 ) O P ( A 2 ) → A 3 (A_1)OP(A_2)→A_3 (A1)OP(A2)A3

    ​ 完成一条指令需要访存4次,取指→读A1→读A2→写A3

  5. 四地址指令 O P A 1 A 2 A 3 ( 结果 ) A 4 ( 下址 ) OP \quad A_1 \quad A_2 \quad A_3(结果) \quad A_4(下址) OPA1A2A3(结果)A4(下址)

    指令含义: ( A 1 ) O P ( A 2 ) → A 3 (A_1)OP(A_2)→A_3 (A1)OP(A2)A3 A 4 A_4 A4=下一条将要执行指令的地址

    完成一条指令需要访存4次,取指→读A1→读A2>写A3

    正常情况:取指令之后PC+1 , 指向下一条指令

地址码的位数有什么影响? n位地址码的直接寻址范围= 2 n 2^{n} 2n , 若指令总长度固定不变,则地址码数量越多,寻址能力越差

指令分类(按照指令长度)

指令字长:一条指令的总长度(可能会变)

机器字长:CPU进行一次整数运算所能处理的二进制数据的位数(通常和ALU直接相关)

存储字长:一个存储单元中的二进制代码位数(通常和MDR位数相同)

半字长指令、单字长指令、双字长指令 —―指令长度是机器字长的多少倍

指令字长会影响取指令所需时间。如:机器字长=存储字长=16bit,则取一条双字长指令需要两次访存

定长指令字结构:指令系统中所有指令的长度都相等

变长指令字结构:指令系统中各种指令的长度不等

指令分类(按照操作码长度分类)

定长操作码:指令系统中所有指令的操作码长度都相同

控制器的译码电路设计简单,但灵活性较低

可变长操作码:指令系统中各指令的操作码长度可变

控制器的译码电路设计复杂,但灵活性较高

定长指令字结构+可变长操作码→扩展操作码指令格式(重点)

指令分类(按照操作类型)

  • 数据传送类指令:进行主存与CPU之间的数据传送

    LOAD作用:把存储器(源)中的数据放到寄存器(目的)中

    STORE作用:把寄存器(源)中的数据放到存储器(目的)中

  • 运算类

    算术:加、减、乘、除、增1、减1、求补、浮点运算、十进制运算

    逻辑:与、或、非、异或、位操作、位测试、位清除、位求反

    移位操作:算术移位、逻辑移位、循环移位(带进位和不带进位)

  • 程序控制类 改变程序执行顺序

    转移操作:

    无条件转移 JMP
    条件转移 JZ:结果为0; JO:结果溢出; JC:结果有进位

    调用和返回 CALL和RETURN
    陷阱(Trap)与陷阱指令

  • 输入输出操作 进行CPU和I/O设备之间的数据传送

    CPU寄存器与IO端口之间的数据传送(端口即lo接口中的寄存器)
    在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值