当前位置: 首页 > news >正文

拓展操作码举例

拓展操作码举例

指令字长16位,每个地址码占4位:

那么如果要表示三地址操作码有16条

前四位表示操作码op,后面有3个4位长的地址字段A1,A2,A3

三地址指令

至少需要将1111留作扩展操作码之用,因此三地址指令只能有2^4 -1=15条

二地址指令

至少将 1111 1111 留作扩展操作码之用,因此只能有2^4 -1=15条 (前面四个1固定)

一地址指令

111111111111留作扩展操作码之用,只能有2^4 -1=15条(前面8个1固定)

零地址指令

零地址指令为16条

需要注意以下两点

1,不允许短码是长吗的前缀,短操作码不可与长操作码的前面部分的代码相同(哈夫曼树)

2.个指令的操作码一定不可重复

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

![image-20250914171051336](/Users/tusier/Library/Application Support/typora-user-images/image-20250914171051336.png)

对于扩展操作码,可以用类似于子网划分的方法理解(计算机网络)

设地址长度为n,上一层留出m种状态,下一层可以扩展出m x 2^n种状态

比方说三地址指令2的四次可以表示16种状态,而实际上只表示了15种,那么这一层就留出了1

然后在二地址指令 就可以扩展出1x2的四次=16种,而实际上使用了12种,那么这一次就留出了4

然后在一地址指令 可以扩展出 4x2的四次=64种,实际上使用了62种,这一层留出了2

最后在零地址指令,可以拓展出2x2的四次=32

http://www.wxhsa.cn/company.asp?id=3717

相关文章:

  • TryHackMe | Cicada-3301 Vol:1
  • 完整教程:Word添加图/表题注
  • [MCP][01]简介与概念
  • CF819B Mister B and PR Shifts
  • 第一次自我介绍
  • 在Linux环境部署Flask应用并启用SSL/TLS安全协议
  • 0127_责任链模式(Chain of Responsibility)
  • 洛枫娜娜米讨厌数学……?
  • Spatial 语言核心概念简介
  • Redis数据库的五类核心数据结构
  • RAG 个人知识库 向量查找原理
  • css-1
  • Java-JDK8新特性
  • 解决MySQL ONLY_FULL_GROUP_BY 错误的方案
  • 博客园美化
  • spatial 一个芯片设计语言的简介 scala dsl 并行支持 -1
  • NOIP备考
  • NVIDIA GPGPU 访存通路设计调研
  • 用 Java 和 Tesseract 实现验证码图像识别
  • AGC003D
  • Java 实现验证码图像识别与处理流程详解
  • 图论杂题。
  • 暑假训练小结
  • 初识python:一些基础的知识(函数)
  • Java并发编程(3)
  • 斐波那契子序列
  • [豪の学习笔记] 软考中级备考 基础复习#10
  • 题解:CF2137D Replace with Occurrences
  • 题解:CF2137C Maximum Even Sum
  • 第02周 java预习