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

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

扩展操作码


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


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条指令。


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


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


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


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


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


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


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


相关文章
|
8天前
|
安全 网络安全 PHP
PHP 爆发高危漏洞,多国站点紧急下线|站长、开发人员自查指南
PHP 爆出高危远程代码执行漏洞,多国部分网站紧急下线避险。本文梳理本次漏洞风险,给站长、网站开发人员提供自查和应急处置方案,同时客观聊聊建站 CMS 技术选型需要关注的底层安全问题。
758 0
|
10月前
|
人工智能 监控 数据可视化
2025 主流 BI 工具全景盘点——10款国内外产品赋能企业决策
2025年BI工具迎来AI驱动新阶段,市场规模持续扩张。本文盘点10款主流产品,涵盖瓴羊Quick BI、Power BI、Tableau等,聚焦AI交互、行业适配与生态集成三大趋势,解析各工具核心技术与场景价值,助力企业精准选型,赋能数字化决策升级。Quick BI(阿里云旗下)核心优势:国内唯一连续 6 年入选 Gartner ABI 魔力象限的智能 BI 产品;搭载智能小Q多Agent协同分析功能,中文语义识别准确率达 98%。
|
存储 机器学习/深度学习 大数据
终于有人把湖仓一体讲清楚了
湖仓一体是将数据仓库与数据湖融合的新一代数据架构,兼具结构化分析与多样化数据处理能力,实现统一存储、高效查询与深度分析,助力企业提升数据管理效率与业务决策水平。
|
XML 移动开发 JavaScript
js中BOM和DOM总结(基础篇)
文章总结了JavaScript的BOM和DOM知识点,包括window、screen、location、history、navigator对象,以及消息框、计时器和cookie。同时,介绍了DOM的概念、节点获取和修改方法,以及事件处理。
js中BOM和DOM总结(基础篇)
|
敏捷开发 监控 数据可视化
一文带你了解:六款适合PC端的工时管理工具
在项目管理中,工时管理软件能实时反映项目各任务的进展情况。管理者可以通过查看员工在每个任务上的工时投入,判断任务是否按计划推进。若发现某个任务工时投入远超预期但进度缓慢,就可以及时介入调查原因,是遇到技术难题、资源不足还是人员协作问题等,进而采取相应措施加以解决,确保项目能按时交付。
|
数据安全/隐私保护
产品设计:纠正你的网站注册时[验证邮箱]的流程
1. 填写用户名、密码、重复密码、Email、……,提交;2. 收取邮件,点击激活链接;3. 进一步完善资料或使用网站。
3953 0
|
编译器 C语言 C++
VSCode安装配置C语言(保姆级教程)
VSCode安装配置C语言(保姆级教程)
3396 5
|
存储
【汇编】栈及栈操作的实现
【汇编】栈及栈操作的实现
1042 1
【汇编】栈及栈操作的实现
|
网络协议 网络架构
【计网·湖科大·思科】实验六 IP数据报的发送和转发流程、默认路由和特定主机路由
【计网·湖科大·思科】实验六 IP数据报的发送和转发流程、默认路由和特定主机路由
743 0
|
程序员 编译器
静态分配和动态分配之间的区别是什么
【9月更文挑战第1天】静态分配和动态分配之间的区别是什么
1965 0

热门文章

最新文章