当前位置: 首页 > 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.rkmt.cn/news/4518.html

相关文章:

  • TryHackMe | Cicada-3301 Vol:1
  • CF819B Mister B and PR Shifts
  • 0127_责任链模式(Chain of Responsibility)
  • Spatial 语言核心概念简介
  • spatial 一个芯片设计语言的简介 scala dsl 并行支持 -1
  • NVIDIA GPU调研: 访存通路设计
  • 图论杂题。
  • 第02周 java预习
  • 命令模式在 TPL Dataflow 反馈回路管道中的应用及问题解决
  • Anti-Proxy Attendance 题解
  • 【2024-2025第二学期】助教工作总结
  • 开始每小时记录日程
  • MySQL数据库:SQL数据类型
  • 搭建rocketmq的三主三从遇到的坑
  • 【芯片设计-信号完整性 SI 学习 1.2 -- loopback 回环测试】 - 实践
  • redis实现缓存3-封装redis工具类
  • 高阻态
  • ORA-01555系列:二、ORA-01555的场景分析与解决方案
  • Rcc_APBPeriphClockCmd()
  • 故障处理:ORA-19809: limit exceeded for recovery files
  • [总结/备赛]备战 CSP-S 2025 初赛总结
  • Java运行时jar时终端输出的中文日志是乱码
  • 20231310王宏邦《密码系统设计》第1周
  • 知识点错题整理
  • Linux学习记录(六):添加/删除用户
  • 接口测试---PyMysql
  • linux c应用性能与内存泄露问题排查工具
  • 去去就来
  • 高三试卷
  • 使用 CUDA 12.9 编译 PyTorch 2.4.0