前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【计算机组成原理】指令系统&考研真题详解之拓展操作码!

【计算机组成原理】指令系统&考研真题详解之拓展操作码!

作者头像
苏泽
发布2024-06-17 09:05:19
1550
发布2024-06-17 09:05:19
举报

计算机组成原理:指令系统概述与深入解析

1. 指令系统概述

计算机软硬件界面的概念

在计算机组成原理中,指令系统扮演着至关重要的角色,它是计算机软硬件界面的核心。软件通过指令与硬件进行通信,硬件根据指令执行相应的操作。指令是软件的最底层,是计算机执行任务的基本单位,它们直接驱动硬件进行工作。

指令在计算机中的作用

指令是计算机执行任务的基本单元。每一个指令都包含了执行特定操作所需的全部信息,包括操作码(Opcode)和操作数(Operands)。指令的作用是告诉计算机的硬件需要执行哪些操作,以及如何执行这些操作。

2. 记忆内容

指令系统的定义和重要性

指令系统定义了计算机硬件能执行的所有指令的集合。它的重要性在于,指令系统的设计直接影响到计算机的性能、效率以及编程的便利性。一个优秀的指令系统可以提高程序的执行效率,简化编程过程,并且增强计算机处理复杂任务的能力。

概念

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

指令的格式(分类)

一条指令就是机器语言的一个语句,它是一组有意义的二进制代码。

一条指令通常要包括操作码字段和地址码字段两部分:

一条指令可能包含 0 个、 1 个、 2 个、 3 个、 4 个 地址码 …

根据地址码数目不同,可以将指令分为 零地址指令、一地址指令、二地址指令

按指令长度分类

指令字长 :一条指令的总长度(可能会变)

机器字长: CPU 进行一次整数运算所能处理的二进制数据的位数(通常和 ALU 直接相关)

存储字长:一个存储单元中的二进制代码位数(通常和 MDR 位数相同)

半字长指令、单字长指令、双字长指令

—— 指令长度是机器字长的多少倍

指令字长会影响取指令所需时间。如:机器字长 = 存储字长 =16bit ,则取一条双字长指令需要两次访存

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

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

按操作码长度分类

定长操作码:指令系统中所有指令的操作码长度都相同   n 位 -> 2的n次方 条指令

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

定长指令字结构 + 可变长操作码  ->扩展操作码指令格式

按操作类型分类

1.数据传送

LOAD

作用:把 存储器 中的数据放到 寄存器

STORE

作用:把 寄存器 中的数据放到 存储器

2. 算术逻辑操作

算术:加、减、乘、除、增 1 、减 1 、求补、浮点运算、十进制运算

逻辑:与、或、非、异或、位操作、位测试、位清除、位求反

3. 移位操作

算术移位、逻辑移位、循环移位 ( 带进位和不带进位 )

4. 转移操作

无条件转移 JMP

条件转移

JZ :结果为 0 ; JO :结果溢出; JC :结果有进位

调用和返回 CALL 和 RETURN

陷阱 (Trap) 与陷阱指令

5. 输入输出操作

CPU 寄存器与 IO 端口之间的数据传送 ( 端口即 IO 接口中的寄存器

按照地址数量分类

然而不同格式的指令  他们的指令字长却相等 这就造就了一个类型的题:拓展操作码题目!

拓展操作码

我们都知道根据地址码数量分类有以上几种指令  

但是一般的指令都是定长,所以哪怕在同一套系统中  同时用到了多种的指令  也会采用同样的字长来进行存储 

所以这个时候就会有很经典的问题:

做这道题我们要知道一件事情:  指令的本质是什么?

很简单 那就是排列组合!

也就是说 “其中三地址指令29”条这句话,完全可以翻译成“三地址这种类型的指令一共能有29种不同的可能性”  这样说就清晰多  因为这就意味着 我们需要用若干个字节 来表示这29种不同的可能性

然后又已知每一个字节位能表示的可能性是2种(0/1),那么我们想有多少个字节可以表示29种不同的可能呢?最少5种 (因为2的4次方=16<29),2^5=32>29,也就是说有32-29=3种可能性是不在三地址指令这种类型的指令集里面的,所以这3 种余出来的可能性要被利用

就在下一种 “二地址指令集”中利用到  

所以就会有3*2^6=192种可能性,192>107所以完全足够表示这些可能性,,

所以指令字长应该是5位操作码+6*3位地址码=23位

因为是字节编制,是8的整数 所以是24

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 计算机组成原理:指令系统概述与深入解析
    • 1. 指令系统概述
      • 计算机软硬件界面的概念
      • 指令在计算机中的作用
    • 2. 记忆内容
      • 指令系统的定义和重要性
    • 概念
      • 指令的格式(分类)
        • 按指令长度分类
          • 按操作码长度分类
            • 按操作类型分类
              • 按照地址数量分类
                • 然而不同格式的指令  他们的指令字长却相等 这就造就了一个类型的题:拓展操作码题目!
                • 拓展操作码
                  • 做这道题我们要知道一件事情:  指令的本质是什么?
                  相关产品与服务
                  对象存储
                  对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档