指令系统——扩展操作码指令格式

简介: 指令系统——扩展操作码指令格式

扩展操作码


指令由操作码和若干个地址码组成。


PS:先回顾一下指令字结构与操作码的概念:


  • 定长指令字结构:指令系统中所有指令的长度都相等


  • 变长指令字结构:指令系统中各种指令的长度不等


  • 定长操作码:指令系统中所有指令的操作码长度都相同


  • 可变长操作码:指令系统中各指令的操作码长度可变


定长指令字结构+可变长操作码 → 扩展操作码指令格式(即不同地址数的指令使用不同长度的操作码)


扩展操作码举例


这只是一种设计方法:



设计扩展操作码需注意:


  1. 不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同。(对比哈夫曼树“前缀编码”)


  1. 各指令的操作码一定不能重复。


通常情况下,对使用频率较高的指令,分配较短的操作码;对使用频率较低的指令,分配较长的操作码,从而尽可能减少指令译码和分析的时间。


设计扩展操作码例题:


设指令字长固定为16位,试设计一套指令系统满足:


a) 有15条三地址指令


b) 有12条二地址指令


c) 有62条一地址指令


d) 有32条零地址指令


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


解:


a) 共24=16种状态


留出16-15=1种


b) 共1 ×24=16种


留出16-12=4种


c) 共4 ×24=64种


留出64-62=2种


d) 共2 ×24=32种



指令操作码


操作码指出指令中该指令应该执行什么性质的操作和具有何种功能。


操作码是识别指令、了解指令功能与区分操作数地址内容的组成和使用方法等的关键信息。


例如,指出是算术加运算,还是减运算;是程序转移,还是返回操作。


操作码分类:


定长操作码:


在指令字的最高位部分分配固定的若干位(定长)表示操作码。


  • 一般n位操作码字段的指令系统最大能够表示2n条指令。


  • 优:定长操作码对于简化计算机硬件设计,提高指令译码和识别速度很有利;


  • 缺:指令数量增加时会占用更多固定位,留给表示操作数地址的位数受限。


扩展操作码(不定长操作码) :


全部指令的操作码字段的位数不固定,且分散地放在指令字的不同位置上。


  • 最常见的变长操作码方法是扩展操作码,使操作码的长度随地址码的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而在满足需要的前提下,有效地缩短指令字长。


  • 优: 在指令字长有限的前提下仍保持比较丰富的指令种类;


  • 缺 :增加了指令译码和分析的难度,使控制器的设计复杂化。


相关文章
|
存储
计算机组成原理(7)----CPU内部单总线数据通路
计算机组成原理(7)----CPU内部单总线数据通路
2032 0
|
存储 知识图谱
【计算机组成原理】指令系统&考研真题详解之拓展操作码!
也就是说 “其中三地址指令29”条这句话,完全可以翻译成“三地址这种类型的指令一共能有29种不同的可能性” 这样说就清晰多 因为这就意味着 我们需要用若干个字节 来表示这29种不同的可能性 然后又已知每一个字节位能表示的可能性是2种(0/1),那么我们想有多少个字节可以表示29种不同的可能呢?最少5种 (因为2的4次方=16<29),2^5=32>29,也就是说有32-29=3种可能性是不在三地址指令这种类型的指令集里面的,所以这3 种余出来的可能性要被利用 就在下一种 “二地址指令集”中利用到
600 0
|
敏捷开发 监控 数据可视化
一文带你了解:六款适合PC端的工时管理工具
在项目管理中,工时管理软件能实时反映项目各任务的进展情况。管理者可以通过查看员工在每个任务上的工时投入,判断任务是否按计划推进。若发现某个任务工时投入远超预期但进度缓慢,就可以及时介入调查原因,是遇到技术难题、资源不足还是人员协作问题等,进而采取相应措施加以解决,确保项目能按时交付。
|
人工智能 JavaScript 前端开发
利用AI提升代码审查效率
本文探讨了如何利用AI技术提升代码审查效率,包括AI在静态代码分析、代码补全和模式识别等方面的作用,以及使用AI驱动工具、集成CI/CD流程、定制化规则等技巧,旨在帮助开发者优化代码审查流程,提高代码质量和开发效率。
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】29.卷积神经网络之GoogLeNet模型介绍及用Pytorch实现GoogLeNet模型【含完整代码】
【从零开始学习深度学习】29.卷积神经网络之GoogLeNet模型介绍及用Pytorch实现GoogLeNet模型【含完整代码】
|
程序员 编译器
静态分配和动态分配之间的区别是什么
【9月更文挑战第1天】静态分配和动态分配之间的区别是什么
1738 0
|
存储 编解码 弹性计算
阿里云服务器2核4G、4核8G、8核16G配置实例规格选择参考
2核4G、4核8G、8核16G配置的云服务器在阿里云目前的活动中目前有经济型e、通用算力型u1、计算型c7和计算型c8y四种实例可选,虽然配置相同,但是这些实例规格之间的价格差别是很大的,以2核4G配置为例,活动价格最便宜的经济型e实例2核4G配置只要30.06元/3个月,年付的价格为1089.53元/1年,而计算型c7实例2核4G3M则要3770.99元/1年,因此,我们有必要弄清楚他们之间的差别,这样才能根据自己的需求选择最适合自己的实例。
1570 1
阿里云服务器2核4G、4核8G、8核16G配置实例规格选择参考
|
网络协议 网络架构
【计网·湖科大·思科】实验六 IP数据报的发送和转发流程、默认路由和特定主机路由
【计网·湖科大·思科】实验六 IP数据报的发送和转发流程、默认路由和特定主机路由
579 0
|
存储
【汇编】栈及栈操作的实现
【汇编】栈及栈操作的实现
844 1
【汇编】栈及栈操作的实现