热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

指令系统——指令格式(详解)

一、总览二、指令的定义指令(又称机器指令):是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。一台计算机的所有指令的集合构成该机的指令系统,也称为指令集。注:一台计算机只

一、总览

《指令系统——指令格式(详解)》

二、指令的定义

指令(又称机器指令):
是指示计算机执行某种操作的命令,是计算机运行的最小功能单位
一台计算机的所有指令的集合构成该机的指令系统,也称为指令集
注:一台计算机只能执行自己指令系统中的指令,不能执行其他系统的指令。
《指令系统——指令格式(详解)》

三、指令格式

一条指令就是机器语言的一个语句,它是一组有意义的二进制代码
一条指令通常要包括操作码字段地址码字段两部分:
《指令系统——指令格式(详解)》
A1这个地址里面的值 与 A2这个地址里面的值 执行OP操作后,将结果存到A3这个地址中

四、指令格式-地址码

《指令系统——指令格式(详解)》
《指令系统——指令格式(详解)》
指令含义:(A1)OP(A2)——>A3,A4=下一条将要执行指令的地址
设指令字长为32位,操作码占8位,4个地址码字段各占6位
设存储字长为32位,即4B

  • Ai可直接表示2^6=64个不同的位置
  • 一条指令的执行(假设每个地址都是主存地址):
    取指令访存1次(假设指令字长=存储字长)
    取两个操作数访存2次
    存回结果访存1次
    共访存4次
    《指令系统——指令格式(详解)》

设指令字长及存储字长均为32位,操作码占8位:

定长指令字结构:指令长度固定 指令字长=存储字长
变长指令字结构:指令长度不等 按字节的倍数变化

定长操作码:n位——>2^n条指令
扩展操作码:操作码长度可变
《指令系统——指令格式(详解)》
指令含义:(A1)OP(A2)→A3,A4=下一条将要执行指令的地址
4个地址码字段各占6位,指令操作数直接寻址范围为2^6=64;完成一条指令需要访存4次《指令系统——指令格式(详解)》
指令含义:(A1)OP(A2)→A3
3个地址码字段各占8位,指令操作数直接寻址范围为2^8=256;完成一条指令需要访存4次
《指令系统——指令格式(详解)》
指令含义:(A1)OP(A2)→A1
2个地址码字段各占12位,指令操作数直接寻址范围为2^12=4K;完成一条指令需要访存4次
《指令系统——指令格式(详解)》
指令含义:

  1. OP(A1)→A1,如加1、减1、取反、求补等,完成一条指令需要访存3次
  2. (ACC)OP(A1)→ACC,隐含约定的目的地址为ACC完成一条指令需要访存2次,1个地址码字段占24位,指令操作数直接寻址范围为2^24=16M
    注:ACC为累加器
    《指令系统——指令格式(详解)》
    指令含义:
    1.不需要操作数,如空操作、停机、关中断等指令
    2.堆栈计算机,两个操作数隐含存放在栈顶和次栈顶,计算结果压回栈顶

小结:
当用一些硬件资源代替指令字中的地址码字段后

  1. 可扩大指令的寻址范围
  2. 可缩短指令字长
  3. 可减少访存次数

五、扩展操作码

在设计扩展操作码指令格式时,必须注意以下两点:
1)不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同。
2)各指令的操作码一定不能重复。
通常情况下,对使用频率较高的指令,分配较短的操作码;对使用频率较低的指令,分配较长的操作码,从而尽可能减少指令译码和分析的时间。也还有其他扩展操作码设计方法。
《指令系统——指令格式(详解)》

《指令系统——指令格式(详解)》
《指令系统——指令格式(详解)》

六、指令操作码

操作码指出指令中该指令应该执行什么性质的操作和具有何种功能。
操作码是识别指令、了解指令功能与区分操作数地址内容的组成和使用方法等的关键信息。例如,指出是算术加运算,还是减运算;是程序转移,还是返回操作。
操作码分类:

  1. 定长操作码:在指令字的最高位部分分配固定的若干位(定长)表示操作码。
  • 一般n位操作码字段的指令系统最大能够表示2”条指令。
  • 优:定长操作码对于简化计算机硬件设计,提高指令译码和识别速度很有利;
  • 缺:指令数量增加时会占用更多固定位,留给表示操作数地址的位数受限。
  1. 扩展操作码(不定长操作码):全部指令的操作码字段的位数不固定,且分散地放在指令字的不同位置上。
  • 最常见的变长操作码方法是扩展操作码,使操作码的长度随地址码的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而在满足需要的前提下,有效地缩短指令字长。
  • 优:在指令字长有限的前提下仍保持比较丰富的指令种类;
  • 缺:增加了指令译码和分析的难度,使控制器的设计复杂化。

七、操作类型

《指令系统——指令格式(详解)》

八、总结

《指令系统——指令格式(详解)》


推荐阅读
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
author-avatar
重庆垚东科技有限公司
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有