精华内容
下载资源
问答
  • 扩展操作码
    千次阅读
    2021-09-05 16:11:20

    一:重述几个概念

    指令格式:有两部分构成

    • 操作码
    • 地址码

    根据指令字长是否固定对指令分类

    • 定长指令字结构:指令系统中所有指令的长度都相等
    • 变长指令字结构:指令系统中各种指令的长度不固定

    根据操作码字段长度是否固定对指令分类

    更多相关内容
  • 第11章 扩展操作码技术.ppt
  • 扩展操作码

    千次阅读 2021-07-04 17:07:44
    标题扩展(变长)操作码编码 (Expanding Opcodes ) 基本思想 将操作码的编码长度分成几种固定长的格式。被大多数指令集采用。 PDP-11是典型的变长操作码机器。 种类 等长扩展法:4-8-12;3-6-9;…… / 不等长扩展...

    标题扩展(变长)操作码编码 (Expanding Opcodes )

    基本思想
    将操作码的编码长度分成几种固定长的格式。被大多数指令集采用。 PDP-11是典型的变长操作码机器。
    种类
    等长扩展法:4-8-12;3-6-9;…… /
    不等长扩展法

    举例说明如何扩展
    【例题】设某指令系统指令字是16位,每个地址码为6位。若二地址指令15条,一 地址指令34条,则剩下零地址指令最多有多少条?
    【解】:操作码按短到长进行扩展编码
    二地址指令: (0000 ~ 1110)
    一地址指令: 11110 (00000 ~ 11111); 11111 (00000 ~ 00001)
    零地址指令: 11111 (00010 ~ 11111) (000000 ~ 111111) 故零地址指令最多有 30x2^6 种。

    【例题】
    在这里插入图片描述在这里插入图片描述

    展开全文
  • 计组——扩展操作码

    千次阅读 2021-04-18 16:24:26
    文章目录一、扩展操作码二、扩展操作码的编码三、扩展操作码计算练习ⅠⅡ完 一、扩展操作码 MARIE的指令集中采用固定长度的操作码表示不同的指令类型 指令分为两大类:定长指令和变长指令,它们各有优缺: 定长...

    一、扩展操作码

    MARIE的指令集中采用固定长度的操作码表示不同的指令类型

    在这里插入图片描述
    指令分为两大类:定长指令和变长指令,它们各有优缺:

    • 定长指令的译码相对容易但是浪费了存储空间
    • 变长指令译码复杂

    而在实际运用过程中:不同类型的指令需要的操作数数量往往不同

    因此,产生了扩展操作码(Expanding Opcodes):在定长的指令中,通过变长的操作码,表示更多的指令类型

    在这里插入图片描述

    二、扩展操作码的编码

    区别操作码的长度:采用转义操作码(Escape Opcode)。转义操作码的作用是为了表示操作码的编码超过当前长度。

    编码要避免操作码的重复

    假设某体系结构中地址长度为4,如何采用16位字长的指令编码下列指令:
    15条三地址指令,14条双地址指令,31条单地址指令,16条零地址指令

    在这里插入图片描述
    以上编码的流程:

    • 获取字长16、单个地址长度4

    • 从指令最短(16-4×3=4)、地址最长(4×3=12)的三地址指令开始,将前15条作为三地址指令,即0000 R1 R2 R3~1110 R1 R2 R3为三地址指令
      唯一剩余的指令1111作为转义码,它是非三地址指令的标志

    • 14条二地址指令,用1111 0000 R1 R2~1111 1101 R1 R2表示
      还剩余两条指令1111 11101111 1111作为转义码,它是非二、三地址指令的标志

    • 31条一地址指令,由于四位只能表示16条指令,恰好有两个转义码,刚好够,用1111 1110 0000 R1~1111 1111 1110 R1表示
      还剩一条指令1111 1111 1111作为转义码它是无地址指令的标志

    • 最后剩下的刚好就是16条地址指令1111 1111 1111 0000~1111 1111 1111 1111作为无地址指令

    此时:每条指令都是唯一的,通过识别转义码能够找到唯一的操作,对译码操作是非常友好的

    if(IR[15:12] != 1111){
    	译码并执行对应的三地址指令
    }else(IR[15:9] != 1111 111){
    	译码并执行对应的双地址指令
    }else(IR[15:4] != 1111 1111 1111){
    	译码并执行对应的单地址指令
    }else{
    	译码并执行对应的零地址指令
    }
    

    三、扩展操作码计算练习

    假设地址长度为4,指令长度为8
    15条单地址指令,最多_____条无地址指令;
    14条单地址指令,最多_____条无地址指令;
    13条单地址指令,最多_____条无地址指令;

    答:
    	16。操作码4+地址4,0000~1110作为单地址指令,转义码1111,1111 0000~1111 1111作为无地址指令,共16
    	32。0000~1101作为单地址指令,转义码1111和1110,1110 0000~1111 1111作为无地址指令,共32
    	48。0000~1100作为单地址指令,转义码1111、1110和1101,1101 0000~1111 1111作为无地址指令,共48
    

    在这里插入图片描述

    某台计算机指令字长为32,地址长度为12,假设有250条双地址指令,那么最多还可以有_____条单地址指令

    答:
    	双地址指令为操作码8位+地址一12位+地址二12位,2^8=256>250,因此足够表示双地址指令。那么就用前250个操作码0000 0000~1111 1001(0~249,共250)作为双地址指令。
    	剩余的操作码作为转义码,1111 1010~1111 1111(250~255,共6)
    	单地址指令为操作码20位+地址12位,对于每个操作码,能够表示的指令从xxxx xxxx 0000 0000 0000~xxxx xxxx 1111 1111 1111(0~4095,共4096),x表示操作码
    	
    	因此,总共还能表示4096×6=24576个单地址指令
    
    	计算表示:(2^32 - 250 * 2^12 * 2^12) / 2^12 = 24576
    	总共表示2^32个数,一个地址位能表示2^12个地址,两个地址位2^24个地址
    	除去所有双地址,还剩2^32-250×2^24个指令,这些指令只有一个地址,共2^12种
    	(转义码数量×地址总数=所有情况)
    	因此最后是(2^32 - 250 * 2^12 * 2^12) / 2^12 = 24576条指令
    

    展开全文
  • 文章目录对于可变长指令指令设计要点例题巩固 对于可变长指令 不同指令的开头不可以...1)不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同。 2)各指令的操作码一定不能重复。 例题巩固 ...

    对于可变长指令

    不同指令的开头不可以一致(否则可能导致混淆)
    有点儿像哈夫曼编码
    在这里插入图片描述
    在这里插入图片描述

    • 可以用如下方式(十六进制)描述各个长度下的二进制操作码的不同代码
      • 0~E
      • F0~FE
      • FF0~FFE(12位操作码,只取到FFE是将FFF预留作扩展操作码之用,这样我们可以根据前12位就可以知道该指令不可能是12位操作码之外的指令类型;上述的范围只取到*E,类似的用意)
      • FFF0~FFFF(16位操作码,操作码最长上限,已经占用了指令字长的所有位,不需要再预留给具有更长操作码的指令了)

        实际上,上述划分方案是一种连续的划分

    • 尽管如此,上述方案只是一种可能的方案,也可以有其他扩展方案
      • 譬如,我们需要设计具有12操作码的指令比较多,那么我们可以调整位数较少的操作码的指令类型的取值范围(主要是指上限)
      • 另外,操作码的位数会随着 地址数的减少而增加
      • 譬如,我们可以安排其形成:15条 三地址指令(此时的指令有4位操作码,三地址占用3*4=12位的容量),12条2地址指令;63条一地址指令和16条0地址指令(16位操作码);可以如下安排4种长度(4/8/12/16bit)操作码的取值范围(离散十六进制数(一位十六进制数相当于4位二进制数),闭区间)
        • [0,E]
        • [F0,FB]
        • [FC0,FFE]
          • (包含 F F E − F C 0 + 1 = 03 E + 1 = 03 F 16 进 制 = 3 × 1 6 1 + 15 × 1 6 0 = 48 + 15 = 63 FFE-FC0+1=03E+1=03F_{16进制}=3\times16^1+15\times16^0=48+15=63 FFEFC0+1=03E+1=03F16=3×161+15×160=48+15=63条)
        • [FFF0,FFFF]
          • (包含 F F F F − F F F 0 + 1 = 16 FFFF-FFF0+1=16 FFFFFFF0+1=16条(16位长度操作码)的0地址指令)

    指令设计要点

    • 不允许 短码长码前缀,即短操作码不能与长操作码的 前面部分的代码相同。

    • 各指令的 操作码一定不能

      • 譬如,8位操作码的指令和12位操作码的指令之间的区分:

        • 12位操作码的指令的操作码的前8位不可以和8位操作码的指令的操作码有重复
        • 应该能够做到,cpu要取具有8位操作码指令的时候,仅仅根据指令的前八位操作码,就可以认出该指令是不是8位操作码指令(而不是4位操作码指令或者12位操作码指令)
          • (从上例途中的安排方式)我们也可以看出,从(0~3)位操作码我们可以排除4位操作码的指令;从(4~7)位操作码我们可以排除具有超过8位操作码的指令
    • 拥有较短的指令码的指令可以执行指令的复杂度不见得一定比较长操作码的指令来的简单(取决于计算机怎么设计的)

    • 对于使用频率较高的指令分配较短的操作码,对使用频率较低的指令分配较长的操作码,从而尽可能减少指令译码和分析的时间.

    • 另外,对于长操作码的指令的分配会占用一部分短操作码指令的范围(数目)(通过对短操作码的预留(保留不用做短操作码的那一部分给长操作码指令,预留得多,长操作码指令就可以多设计)))

    例题巩固

    在这里插入图片描述

    对于(2)

    操作码位数max(该操作码长度下的最大数量)real(该操作码长度的实际分配数量)residula(短操作码预留下来的"桶(可以扩展的)"数量)
    4bit 2 4 2^4 24X(题目给的条件,已知) 2 4 − X 2^4-X 24X
    10(=4+6)bit(扩展一个地址码之后,操作码的位数) ( 2 4 − X ) × 2 6 (2^4-X)\times2^6 (24X)×26(6是单个地址码的长度)M(代求未知数) ( 2 4 − X ) × 2 6 − M (2^4-X)\times2^6-M (24X)×26M
    16(4+6+6))bit ( ( 2 4 − X ) × 2 6 − M ) × 2 6 ((2^4-X)\times2^6-M)\times2^6 ((24X)×26M)×26Y(已知)Null(此种指令操作码已经占用所以指令字长bit)

    ( ( 2 4 − X ) × 2 6 − M ) × 2 6 = Y ((2^4-X)\times2^6-M)\times2^6=Y ((24X)×26M)×26=Y

    展开全文
  • 指令系统——扩展操作码指令格式

    千次阅读 2021-05-14 21:37:36
    文章目录扩展操作码扩展操作码举例设计扩展操作码需注意:设计扩展操作码例题:指令操作码操作码分类:定长操作码:扩展操作码(不定长操作码) : 扩展操作码 指令由操作码和若干个地址码组成。 PS:先回顾一下指令字...
  • 计算机组成原理:扩展操作码技术

    万次阅读 多人点赞 2020-04-09 15:10:37
    今天有个好友问我一道《计算机组成原理》(唐朔飞) 中的例题,是关于扩展操作码的,为了让自己理解更加深刻一点,就写了这篇博客. 首先看看什么是扩展操作码技术: 当采用统一操作码,指令长度与各类指令的地址长度发生...
  • 4-2扩展操作码

    千次阅读 2020-12-01 19:40:35
    学习目标: 做题 学习内容: 概念: 1、 操作码、地址码的概念 2、 根据地址码数目不同分类 3、 根据指令长度分类 4、 根据操作码的长度不同分类 ...二地址指令为15条,将1111 1111留作扩展操作码
  • 扩展操作码技术

    千次阅读 2020-05-13 15:45:30
    方法一:固定操作码的设计方式 0000 XXXX YYYY ZZZZ 1111 XXXX YYYY ZZZZ 16条三地址指令 方法二: 可变操作码的设计方法 扩展方式1: 0000 XXXX YYYY ZZZZ 1110 XXXX YYYY ZZZZ 15条三地址指令 1111 0000 XXXX YYYY...
  • 计算机组成原理------扩展操作码

    千次阅读 多人点赞 2019-07-12 21:09:08
    首先,需要建立的一种直观的认知是:既然是扩展操作码,就意味着操作码的位数越变越多! 之所以这么强调,是因为常常混淆了操作码的扩展方向。 再看扩展的原理: 假设指令字长是16位,平均劈开成4份,高位4位用作...
  • 扩展操作码的总结

    万次阅读 多人点赞 2016-10-01 13:51:55
    需要建立的一种直观的认知是:既然是扩展操作码,就意味着操作码的位数越变越多! 之所以这么强调,是因为常常混淆了操作码的扩展方向。再看扩展的原理: 假设指令字长是16位,平均劈开成4份,高位4位用作操作码,...
  • 如何设计扩展操作码--应用

    千次阅读 多人点赞 2016-10-01 14:44:04
    在下面这一篇讲过一点点基础原理。 ... 光说没用,以实例求证。 假设指令字长是16位,操作数的地址码是6位,指令有0地址,一地址,二地址三种。... 1)设固定操作码,若0地址指令有M种,一地址指令有N种,则二地址指
  • 某计算机的单字长指令为16位,采用扩展操作码方式,每个地址码4位,三地址指令15条,二地址指令8条,一地址指令127条,零地址指令(A)条? A.16 B.15 C.31 D.32 解答: 按照三地址-二地址-一地址-零地址的顺序进行...
  • 计算机组成原理(唐朔飞第二版)301页,为什么采用扩展操作码技术后,比如说四位操作码就最多只能有15条一地址指令!这么做的主要作用是什么? 这是操作码不固定的指令格式,四位是基本的操作码,还可以扩充,但是...
  • 4.3 指令操作码扩展

    千次阅读 2021-10-03 21:15:29
    4.3 指令操作码的扩展4.3.1操作码的编码方式4.3.2 扩展操作码技术4.3.3 指令扩展的要点 4.3.1操作码的编码方式 指令操作码的长度决定了指令系统中完成不同操作的指令条数。设操作码有n位,则指令条数最多为2n条。 1....
  • 扩展操作码的C实现,实现16位的扩展操作码的分配,分别为3,2,1,0地址指令描述
  • 指令操作码扩展2.1 为什么需要对操作码进行扩展2.2 如何扩展 1. 指令 指令是计算机执行某种操作的命令,一条指令中包括: 操作码 操作数地址 操作结果的存储地址 下一条指令的地址 下面详细说明指令的格式: 一...
  • 假设某机器指令字长16位,操作码扩展,有单操作数、双操作数、零操作数 三类指令,每个地址码6位,双操作数指令有N条,一操作数指令有M条,则零操作数指令最多可有 条。 这是一个代表机器指令的表格:分为4,6...
  • 完全的哈夫曼编码是最优化的编码。但是这种编码的码长种类太多。如上表,7种指令就出现了4种码长,长度有1有2有3有5,不规整,不易于编码。为此,结合用一般的二进制编码,在哈夫曼编码的基础上进行扩展
  • 指令操作码扩展

    万次阅读 多人点赞 2014-08-26 19:01:01
    题一 某计算机指令字长为16位,指令有双操作数、单操作数和无操作数3种格式,每个操作数字段均用6位二进制表示,该指令系统共有m条(m  A.2^6 B.(2^4-m)*(2^6)-1  C.(2^4-m)*2^6 D.(2^4-m)*(2^6-1) ...
  • 【计算机组成原理】指令系统

    千次阅读 2021-07-13 00:20:33
    操作码字段:表征指令的操作特性与功能 (指令的唯一标识) 不同的指令操作码不能相同地址码字段:指定参与操作的操作数的地址码二、操作码分类操作码可以分为固定长度的代码和可变长度的代码1、固定长度的代码多有...
  • 扩展操作吗方法

    千次阅读 2017-09-21 13:14:38
    需要建立的一种直观的认知是:既然是扩展操作码,就意味着操作码的位数越变越多!  之所以这么强调,是因为常常混淆了操作码的扩展方向。 再看扩展的原理:  假设指令字长是16位,平均劈开成4份,高位4位用作...
  • 操作码和地址码

    千次阅读 2021-07-14 01:08:55
    正确答案: B操作码和地址码题目:组成计算机指令的两部分是解析:一条指令必须包括操作码和地址码(或“操作数”)两部分,操作码指出该指令完成操作的类型,如加、减、乘、除、传送等。地址码指出参与操作的数据和...
  • 扩展码再思考

    千次阅读 2016-12-06 16:47:48
    扩展码再思考@(组成原理)之前有总结过比较规整的...同时强调了扩展码要抓住操作码位数扩大的方向,同时是地址减少的方向。可以类比IP地址子网划分时,子网号扩大,则主机号变少。本质都是在有限字长上的二进制计算。...
  • 指令格式之操作码地址码

    万次阅读 多人点赞 2020-04-14 06:24:21
    指令格式之操作码地址码 一、指令格式 指令:操作码字段 地址码字段 指令字(简称指令):表示一条指令的机器字。 指令格式:是指令自用二进制代码表示的结构形式,由操作码字段和地址码字段组成。 操作码字段:表征...
  • 操作码

    万次阅读 2018-01-04 17:56:56
    操作码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 664,384
精华内容 265,753
关键字:

扩展操作码

友情链接: Halcon二维码.rar