可变长度操作码(扩展操作码)

可变长度操作码(扩展操作码)

含义:当指令中的地址部分位数较多时,让操作码的位数少些;当指令中的地址部分位数减少时(如:现在是一地址指令,因而地址位数相应减少),可让操作码的位数增多,以增加指令种类。这称为扩展操作码。

例、假设某指令系统的指令字长是 16 位,最多给出三个地址段 X、Y、Z,每个地址字段占 4 位。试给出一种扩展操作码的方案。

下图给出一种扩展操作码的原理性方案:

分析:

对于三地址指令,三个地址占 12 位;操作码 4 位,全部用来表示操作功能,可以表示 2^4=16 种。现在只取其中的 15 种组合0000~1110,分别表示 15 条三地址指令,留下1111作为扩展操作码标志。

对于二地址指令,两个地址占 8 位;在高4位(第15~12位)为1111的扩展标志指示下,将第11~8位扩展为操作码;如果取其中 15 种表示二地址指令,即11110000~11111110,则留下11111111作为扩展操作码标志。

对于一地址指令,一个地址占 4 位;又可将第7~4位扩展为操作码。如果取其中 15 种表示一地址指令,即111111110000~111111111110,则留下111111111111作为扩展操作码标志。

对于零地址指令,在第15~4位为全1的扩展标志指示下,可有 16 种零地址操作码。


以上只是其中一种设计方案。

实际上,我们需要根据三、二、一、零地址指令的需求量来进行设计。假设二地址指令只需要 14 条,那么我们可以再得到一种扩展标志,用于一地址指令的扩展。

下图给出一种扩展操作码的原理性方案:

分析:

对于二地址指令,两个地址占 8 位;在高4位(第15~12位)为1111的扩展标志指示下,将第11~8位扩展为操作码;如果取其中 14 种表示二地址指令,即11110000~11111101,则留下11111110、11111111作为扩展操作码标志。

对于一地址指令,一个地址占 4 位;又可将第7~4位扩展为操作码。由于在设计二地址指令时留下了两种扩展标志,加上第7~4位的编码,可得到 2X2^4=32 种组合。如果只取其中 31 种表示一地址指令,即111111100000~111111111110,则留下111111111111作为扩展操作码标志。

“在本例中,我们有意为二地址指令只留下1种扩展标志,相应地只有15条三地址指令;而为单地址指令留下2种扩展标志,相应地只有14条二地址指令,而单地址指令可有31条。”  

关于 2X2^4=32 的得来:

第一个 2 是两个扩展标志的 2,后面的 2^4 是指,我们加上第7~4位(一共4位)作为操作码,那么将会得到 2^4 种组合。根据乘法原理,我们的操作码组合将会有 2X2^4=32 种。


作业题

题1、一个计算机系统采用 32 位单字长指令,地址码为 12 位,如果定义了 250 条二地址指令,那么单地址指令的条数最多有( 24K )。

  • 地址码为 12 位,是指每一个地址占 12 位
  • 250 为 0 ~ 249,而 249 = 128 + 64 + 32 + 16 + 8 + 1
  • 对于一地址指令,有 12 位扩展成为操作码部分

题2、某指令字长 12 位,每个地址字段 4 位,若要求有 12 条双操作数指令,问单操作数一地址指令最多可有多少条?  

答:最多有 64 条。

  • 21
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
1、DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合; 2、3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高; 3、RC2和RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快; 4、IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性; 5、RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,非对称算法; 6、DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法; 7、AES(Advanced Encryption Standard):高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES 标准的一个实现是 Rijndael 算法; 8、BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快; 9、MD5:严格来说不算加密算法,只能说是摘要算法; 10、PKCS:The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。 11、SSF33,SSF28,SCB2(SM1):国家密码局的隐蔽不公开的商用算法,在国内民用和商用的,除这些都不容许使用外,其他的都可以使用; 12、ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。 13、TEA(Tiny Encryption Algorithm)简单高效的加密算法,加密解密速度快,实现简单等等等等
指令格式是计算机指令的一种格式化表示方式,包括指令的组成和排列方式等。一般而言,指令格式由以下几个部分组成: 1. 操作码(Opcode):操作码是指令的基本操作类型,用来告诉计算机对数据进行何种操作,如加法、减法、移位、分支等。 2. 操作数(Operand):操作数是指令的操作对象,包括数据、地址、寄存器等。 3. 寻址方式(Addressing Mode):寻址方式是指令获取操作数的方式,包括直接寻址、寄存器寻址、间接寻址、基址寻址、相对寻址等。 4. 扩展字段(Extension):扩展字段是指令中用来扩展操作码或操作数的额外信息,如立即数、偏移量、位移量等。 指令格式根据不同的指令集架构和计算机体系结构,可以分为多种不同的类型,常见的指令格式分类包括: 1. 固定长度指令格式:固定长度指令格式是指令长度固定,每个指令的组成方式和长度都相同。 2. 变长长度指令格式:变长长度指令格式是指令长度可变,每个指令的组成方式和长度可能不同,需要用特殊的标识符来表示指令的长度和组成方式。 3. 栈式指令格式:栈式指令格式是指令中的操作数从栈中获取,操作数的顺序为先进后出,常见于堆栈型计算机。 4. 寄存器-立即数指令格式:寄存器-立即数指令格式是指令中的操作数包括寄存器和立即数,常见于RISC架构。 总之,指令格式是计算机指令的一种格式化表示方式,包括指令的组成和排列方式等,不同的指令格式适合不同的指令集架构和计算机体系结构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值