精华内容
下载资源
问答
  • 扩展操作码的总结

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

    需要建立的一种直观的认知是:既然是扩展操作码,就意味着操作码的位数越变越多!
    之所以这么强调,是因为常常混淆了操作码的扩展方向。

    再看扩展的原理:
    假设指令字长是16位,平均劈开成4份,高位4位用作操作码,低12位分别用作三个地址码。

    那么操作码的个数就是四个二进制所能表达的离散数目: 24=16

    OK,如果地址码只能做地址码,这是最终的结局了。
    但是,如果地址码可以化身为操作码,这并不难对吧,毕竟都是二进制的数位而已。
    非常粗略的认为,现在第一个地址4位也用作操作码,那么总的看来就是高8位用作操作码,低8位用作两个地址码了。

    按理说 28=256 ,即,共计有256种操作码。
    虽然,用8位和用4位各自表达操作码,互不干扰的。但是,实际上呢,单操作码只有15条,且二地址的操作码只有16条,如果还要继续扩展,二地址的也只有15条了!
    为什么差别这么大?
    答案是两个原则不可以破:

    1. 不允许短码是长码的前缀
    2. 各指令的操作码一定不能重复

    为了满足第一条,我们看8位操作码的时候,前面四位全是四位操作码已经出现过的!
    所以,设计思路只能变成:前面四位只用15种离散状态,保留一个给二地址扩展用。因此,8位操作码,实际上限定了高4位的值,只是低四位可以离散,共16种状态,要想再继续扩展,自己最多只敢用15种,还得保留一个种子呢!

    这便是整个的扩展操作码的原理。当然可以有其他变种,这里不做展开。

    看一个例子:

    一个计算机系统采用32位单字长指令,地址码是12位,如果定义了250条二地址指令,那么还有(24K )条单地址指令。

    怎么理解,这里的地址码限定为12位,说的是一个地址码就12位,如果有2个地址,那就是24位了!我会下意识的以为,哦,只分配12位作地址码,这是不对的。

    由原理分析我们知道得问自己一下,这个是不是从三地址开始扩展来的?计算一下,12*3 = 36,超过了总的位数,因此,二地址是起点。之所以这么想,是因为我们知道二地址不一定是扩展的起点。
    二地址共用掉24位作操作数地址,高位有8位作操作码。共有 28=256 种操作码状态,现在只用了250种,因此,还有6个可以供下一个扩展用,一地址码就意味着有中间12位可以做操作码,于是根据乘法原理: 6212=24K . 这里不考虑继续扩展成0地址码,因为问的是可以有,考虑的是最多可以有,是上限值。

    PS: 210=1K,220=1M,230=1G ,乘法原理就是分步用乘法,比如高位有6个状态,再第二步有 212 种 ,乘起来就是结果。

    以上。

    展开全文
  • 扩展操作码

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

    需要建立的一种直观的认知是:既然是扩展操作码,就意味着操作码的位数越变越多! 
    之所以这么强调,是因为常常混淆了操作码的扩展方向。

    再看扩展的原理: 
    假设指令字长是16位,平均劈开成4份,高位4位用作操作码,低12位分别用作三个地址码。

    那么操作码的个数就是四个二进制所能表达的离散数目: 24=16

    OK,如果地址码只能做地址码,这是最终的结局了。 
    但是,如果地址码可以化身为操作码,这并不难对吧,毕竟都是二进制的数位而已。 
    非常粗略的认为,现在第一个地址4位也用作操作码,那么总的看来就是高8位用作操作码,低8位用作两个地址码了。

    按理说 28=256 ,即,共计有256种操作码。 
    虽然,用8位和用4位各自表达操作码,互不干扰的。但是,实际上呢,单操作码只有15条,且二地址的操作码只有16条,如果还要继续扩展,二地址的也只有15条了! 
    为什么差别这么大? 
    答案是两个原则不可以破:

    1. 不允许短码是长码的前缀
    2. 各指令的操作码一定不能重复

    为了满足第一条,我们看8位操作码的时候,前面四位全是四位操作码已经出现过的! 
    所以,设计思路只能变成:前面四位只用15种离散状态,保留一个给二地址扩展用。因此,8位操作码,实际上限定了高4位的值,只是低四位可以离散,共16种状态,要想再继续扩展,自己最多只敢用15种,还得保留一个种子呢!

    这便是整个的扩展操作码的原理。当然可以有其他变种,这里不做展开。

    看一个例子:

    一个计算机系统采用32位单字长指令,地址码是12位,如果定义了250条二地址指令,那么还有(24K )条单地址指令。

    怎么理解,这里的地址码限定为12位,说的是一个地址码就12位,如果有2个地址,那就是24位了!我会下意识的以为,哦,只分配12位作地址码,这是不对的。

    由原理分析我们知道得问自己一下,这个是不是从三地址开始扩展来的?计算一下,12*3 = 36,超过了总的位数,因此,二地址是起点。之所以这么想,是因为我们知道二地址不一定是扩展的起点。 
    二地址共用掉24位作操作数地址,高位有8位作操作码。共有 28=256 种操作码状态,现在只用了250种,因此,还有6个可以供下一个扩展用,一地址码就意味着有中间12位可以做操作码,于是根据乘法原理: 6212=24K . 这里不考虑继续扩展成0地址码,因为问的是可以有,考虑的是最多可以有,是上限值。

    题一:某计算机指令字长为16位,指令有双操作数、单操作数和无操作数3种格式,每个操作数字段均用6位二进制表示,该指令系统共有m条(m<16)双操作数指令,并存在无操作数指令。若采用扩展操作码技术,那么最多还可设计出()条单操作数指令。
        A.2^6                          B.(2^4-m)*(2^6)-1
        C.(2^4-m)*2^6            D.(2^4-m)*(2^6-1)

    答案选B
    分析:
        对于双操作数指令而言,两个长度为6位的操作数共占了12位,剩余的4位用作操作码,所以可以设计出2的四次方个双操作数指令。系统中已经设计出了m条双操作数指令,那么剩余的2^4-m条可以用于设计单操作数的操作码。对于单操作数指令而言,它的操作码长度为16-6=10位。题目中要求使用扩展操作码技术,所以单操作数指令在原来的双操作数指令的4位操作码上可以扩展10-4=6位,所以最多可以设计出(2^4-m)*(2^6)-1条单操作数的指令。减去1的原因是“存在无操作数指令”,所以至少留下一个用来扩展无操作数指令。
     题二:指令字长为16位,采用扩展操作码技术,要求形成15条三地址指令、12条二地址指令、31条一地址指令和16条零地址指令。
    三地址:(15条)
    0000 **** **** ****
    ... ... ... ...
    1110 **** **** ****
    二地址:(12条)
    1111 0000 **** ****
    ... ... ... ...
    1111 1011 **** ****
    一地址:(31条)
    1111 1100 0000 ****
    ... ... ... ...
    1111 1101 1110 ****
    零地址:(16条)
    1111 1101 1111 0000
    ... ... ... ...
    1111 1101 1111 1111

    如果是给定指令字长,再给你一些需求,如何设计满足需求的指令格式? 
    光说没用,以实例求证。

    假设指令字长是16位,操作数的地址码是6位,指令有0地址,一地址,二地址三种。

    第一道

    1)设固定操作码,若0地址指令有M种,一地址指令有N种,则二地址指令最多多少种?

    解析:这个题只需要贯通固定的含义即可:无论是0地址还是1地址,亦或者是2地址,操作码位数都固定着,虽然很少,也不必介怀。因此,计算固定操作码的位数,就由最多的地址码位数决定。即:二地址时,地址码位数12位,那么只给操作码留下4位,共16种离散状态。也即二地址指令只有:16-M-N种.

    第二道

    采用扩展操作码技术,二地址指令最多有多少种?

    解析:一般情况下,我们由多地址指令反向推导少地址指令,也即,按照扩展的思路进行,现在是反向考察,自然心里上就有一些抵触。 
    但是,我们不妨仍从正向角度出发:即,设二地址最多是X种,作为一个变量。那么我们知道二地址的时候,留给操作码的位数是4位,最多的离散状态是16种,现在二地址指令是X种,不能用光了16种状态,所以, X<16 。 
    再去扩展一地址指令:二地址留下16-X种作为扩展的种子。到这里,突然间发现,不必再往下看了,既然M,N都只是变量而已,根本不能对X形成什么约束,X的约束只是来自于:要留至少一个状态作为一地址的扩展。

    于是:X最牛可以是15。就这样。

    第三道

    采用扩展码技术,若二地址指令有P条,0地址指令有Q条,则一地址指令最多几条?

    解析:现在我们知道,解题的角度还是从最少的操作码开始推算:二地址留给操作码的位数是4位,共16种离散状态,也即最多16条,现在有P条指令,意味着16-P个状态用作扩展一地址指令了。 
    具体16-P要乘以什么呢,得由0地址推导得来。

    0地址指令低6位共64种状态,设一地址留了X个状态用于0地址扩展,那么0地址共有64X = Q种。推导出 X=Q/64

    因此一地址指令数目  R+X=(16P)64

    ==> R=(16P)64Q/64

    也即:中间6位共64种状态有(16-P)*64 - Q/64用来做一地址自身了,于是一地址共有:(16-P)*64-Q/64种。

    这里说最多,是因为,一地址指令可以设计的比这小,虽然理论上可以这么多。

    以上。


    PS:  210=1K,220=1M,230=1G ,乘法原理就是分步用乘法,比如高位有6个状态,再第二步有 212 种 ,乘起来就是结果。

    以上。

    展开全文
  • 计算机组成原理:扩展操作码技术

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

    今天有个好友问我一道《计算机组成原理》(唐朔飞) 中的例题,是关于扩展操作码的,为了让自己理解更加深刻一点,就写了这篇博客.

    首先看看什么是扩展操作码技术:

    当采用统一操作码,指令长度与各类指令的地址长度发生矛盾时,通常采用“扩展操作码”技术加以解决。 扩展操作码是一种指令优化技术即让操作码的长度随地址数的减  少而增加(即扩展)。根据不同的地址指令格式,如三地址、二地址、单地址指令等,操作码的位数可以有不同的选择,从而在满足需要的前提下有效地缩短了指令长度

    问题:(书本302页的例7.2)

           假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式.采用扩展操作码技术,若二地址指令有X种,零地址指令有Y种,则一地址指令最多有几种?

     书上给出的解答是: 采用扩展操作码技术,操作码位数可变,则二地址、一地址和零地址的操作码长度分别为4位、10位和16位.可见二地址指令操作码每减少一种,就可多构成2^6种一地址指令操作码;一地址指令操作码每减少一种,就可多构成2^6种零地址指令操作码.好友对于划线处不太理解,我个人的解释为:减少一条二地址指令,就是将一个特定的4位操作码变为一地址指令,地址就是6位,还有10位,除去特定的4位,还有10-4位可以任意组合,所以就是2^6种,零地址也是一样.

    所以一地址指令最多有 ( 2^4 - X ) * 2^6 种,设一地址指令有M种,则零地址指令最多有 [ ( 2^4 - X ) * 2^6 - M ] * 2^6 种.根据题中给出零地址有Y种,即Y = [ ( 2^4 - X ) * 2^6 - M ] * 2^6 ,则一地址指令M = ( 2^4 - X ) * 2^6 - Y * 2^6

     

    附加一道题帮助理解吧!这道题是教我们这门课的林楠老师的PPT上的一道例题.

    某指令系统,指令字长为16位,地址码长度为4位,试提出一种分配方案,使该指令系统有15条三地址指令,14条两地址指令,31条单地址指令,并留有表示零地址指令的可能。

    展开全文
  • 如何设计扩展操作码--应用

    千次阅读 多人点赞 2016-10-01 14:44:04
    在下面这一篇讲过一点点基础原理。 ... 光说没用,以实例求证。 假设指令字长是16位,操作数的地址码是6位,指令有0地址,一地址,二地址三种。... 1)设固定操作码,若0地址指令有M种,一地址指令有N种,则二地址指

    在下面这一篇讲过一点点基础原理。
    http://blog.csdn.net/u011240016/article/details/52717315

    如果是给定指令字长,再给你一些需求,如何设计满足需求的指令格式?
    光说没用,以实例求证。

    假设指令字长是16位,操作数的地址码是6位,指令有0地址,一地址,二地址三种。

    第一道

    1)设固定操作码,若0地址指令有M种,一地址指令有N种,则二地址指令最多多少种?

    解析:这个题只需要贯通固定的含义即可:无论是0地址还是1地址,亦或者是2地址,操作码位数都固定着,虽然很少,也不必介怀。因此,计算固定操作码的位数,就由最多的地址码位数决定。即:二地址时,地址码位数12位,那么只给操作码留下4位,共16种离散状态。也即二地址指令只有:16-M-N种.

    第二道

    采用扩展操作码技术,二地址指令最多有多少种?

    解析:一般情况下,我们由多地址指令反向推导少地址指令,也即,按照扩展的思路进行,现在是反向考察,自然心里上就有一些抵触。
    但是,我们不妨仍从正向角度出发:即,设二地址最多是X种,作为一个变量。那么我们知道二地址的时候,留给操作码的位数是4位,最多的离散状态是16种,现在二地址指令是X种,不能用光了16种状态,所以, X<16
    再去扩展一地址指令:二地址留下16-X种作为扩展的种子。到这里,突然间发现,不必再往下看了,既然M,N都只是变量而已,根本不能对X形成什么约束,X的约束只是来自于:要留至少一个状态作为一地址的扩展。

    于是:X最牛可以是15。就这样。

    第三道

    采用扩展码技术,若二地址指令有P条,0地址指令有Q条,则一地址指令最多几条?

    解析:现在我们知道,解题的角度还是从最少的操作码开始推算:二地址留给操作码的位数是4位,共16种离散状态,也即最多16条,现在有P条指令,意味着16-P个状态用作扩展一地址指令了。
    具体16-P要乘以什么呢,得由0地址推导得来。

    0地址指令低6位共64种状态,设一地址留了X个状态用于0地址扩展,那么0地址共有64X = Q种。推导出 X=Q/64

    因此一地址指令数目 R+X=(16P)64

    ==> R=(16P)64Q/64

    也即:中间6位共64种状态有(16-P)*64 - Q/64用来做一地址自身了,于是一地址共有:(16-P)*64-Q/64种。

    这里说最多,是因为,一地址指令可以设计的比这小,虽然理论上可以这么多。

    以上。

    展开全文
  • 扩展操作码技术

    千次阅读 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...
  • 指令系统——扩展操作码指令格式

    千次阅读 2021-05-14 21:37:36
    文章目录扩展操作码扩展操作码举例设计扩展操作码需注意:设计扩展操作码例题:指令操作码操作码分类:定长操作码:扩展操作码(不定长操作码) : 扩展操作码 指令由操作码和若干个地址码组成。 PS:先回顾一下指令字...
  • 计算机组成原理(唐朔飞第二版)301页,为什么采用扩展操作码技术后,比如说四位操作码就最多只能有15条一地址指令!这么做的主要作用是什么? 这是操作码不固定的指令格式,四位是基本的操作码,还可以扩充,但是...
  • 指令操作码扩展

    万次阅读 多人点赞 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) ...
  • 新手小白学JAVA 基础内容拓展 链接汇总

    万次阅读 多人点赞 2021-08-04 09:48:22
    JAVA基础内容拓展链接汇总 Java基础部分需要学习很多的内容,其实学习就是一个逐步深入递进的过程 从易到难,我们可以进行进一步的拓展 希望本文可以帮助到你,本文是程序媛泡泡给大家总结的链接汇总,欢迎食用 可以...
  • Sublime功能拓展及插件

    千次阅读 2017-12-21 22:20:36
    Sublime基础功能及拓展中文支持ubuntu16.04中subline text3的中文输入法支持sudo apt-get update && sudo apt-get upgradegit clone ...
  • 虚拟机运行macOS10.15Catalina拓展apfs卷宗(拓展分区) (新人投稿,大佬勿喷) 很多在虚拟机上跑macOS10.15Catalina的小伙伴还在为当初分配的空间不足烦恼吗?解决方法来啦!???????????? 第一步:打开终端(启动...
  • 相关连接1.1 本项目相关连接1.2 无操作系统简易版(旧版,有OneNET云平台设备创建和应用配置,本文不再赘述):2. 具体功能3. 硬件环境4. 云平台环境配置5. 接线6. 功能展示6.1 数据流6.2 APP应用管理6.3 串口数据7...
  • 【freeradius3】安装和拓展需求

    千次阅读 2016-02-05 13:28:05
    这次主要来看看 freeradius的安装,以及Python拓展的例子,还有计费字段根据厂家进行拓展。 3.0版本的安装参考文章 yum install libtalloc-develwget -c ftp://ftp.freeradius.org/pub/freeradius/freeradius-server...
  • 线型模型理论拓展

    千次阅读 2019-03-04 19:51:10
    线性模型理论拓展1. 多分类问题1.1 OvO拆解1.2 OVR拆解1.3 MvM拆解1.3.1 二元ECOC编码1.3.2 三元ECOC编码2. 类别不平衡问题3. 拓展 之前的线性模型笔记讨论的是简单的线性回归、对数几率二分类和线性判别二分类问题...
  • Scikit-learn技巧(拓展)总结

    千次阅读 2016-09-05 18:23:00
    总结的很好、很全面。 ... ...最近看了《Python数据挖掘入门与实战》...作者Robert Layton是sklearn的开发者之一,书中介绍了很多sklearn使用的技巧和拓展的方法。这里就书中关于sklearn的部分,还有自己学习sklearn的
  • Java 拓展之调用其他语言

    千次阅读 2016-06-28 19:42:07
    ---移动存储管理员操作请求 72. netstat - an ----(TC)命令检查接口 73. syncapp --------创建一个公文包 74. sysedit --------系统配置编辑器 75. sigverif -------文件签名验证程序 76. sndrec32 -...
  • Android热修复框架HotFix分析拓展

    千次阅读 2016-04-20 17:41:47
    android热修复框架hotfix解析拓展
  • PHP安装、配置及拓展总结

    千次阅读 2016-04-11 12:26:42
    本篇文章主要总结的是PHP的安装、配置、拓展库的添加及验证,实现平台为Unix/Linux/Mac OS X,这里也包括日后的技术文章,只将PHP语言作为服务器端脚本和命令式脚本的使用进行总结,其中不涉及对桌面应用程序的处理...
  • PHP数据库拓展之PDO使用总结

    千次阅读 2016-05-01 13:37:24
    PDO(PHP Data Object)是PHP的数据对象,它为PHP访问数据库提供了一种兼容一致的轻量级接口,也就是提供了一个数据库访问抽象层,不管...PDO拓展本身不提供任何数据库功能,须使用具体数据库PDO驱动来访问数据库服务。
  • Laravel-admin自定义拓展及常见问题

    千次阅读 2018-08-03 16:18:38
    强大的功能,高效,便捷的操作绝对是建站量产的佳选。但是也由于它整合了特别多的插件工具,似乎并不能被新手很好地拓展使用。在实际使用中,我们肯定会用到增删改查之外的功能,比如说自定义删除关联性不太强的其它...
  • 《图解密码技术》

    千次阅读 2019-05-16 15:07:46
    HMAC即Hash MAC,是使用单向散列函数构造认证的方法。分为下面几步: 在密钥后填充0到长度达到单向散列函数的分组长度 填充后的密钥和ipad序列做XOR运算,ipad序列是00110110为单位循环的比特序列 组合在...
  • 链接: https://pan.baidu.com/s/1-DgIQmPNwGydAYYwA_fT5w 提取: pq9q 复制这段内容后打开百度网盘手机App,操作更方便哦@TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。...
  • 链接:https://pan.baidu.com/s/19_YvX6hH-uQVXTnLLZrYPg  提取:q2pu  复制这段内容后打开百度网盘手机App,操作更方便哦
  • 希人人来支持、和关注汉语汉字!合力宏扬现今已经处于互联弱势,同全球某一些大语种一样,出现了相当大的虚拟空间生存危机的,世界上最大语种的,中华民族拥有数... 中文汉字编码技术的探索、突破与拓展 (欧码工作室 19
  • 拓展业务描述 增加数据库访问 第一:登录用户信息来自数据库(用户自身信息以及用户对应的权限信息) 第二:将上传的文件信息写入到数据库(自己做) 第三:将登录操作,文件上传操作操作日志写入到数据库.(自己做) 增加...
  • 将手机或者平板变成电脑的拓展屏幕——spacedesk关于spacedesk下载spacedesk的安装包使用注 关于spacedesk spacedesk它能将同一局域网内的 Windows 电脑(win7 到 win10 )和多种设备连接,使其变成 windows 电脑的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,258
精华内容 20,503
关键字:

拓展操作码