计算机组成原理学习笔记 - 第三、四章

  • 存储系统
  • 指令系统

第 3 章 存储系统

存储系统概述

存储器的层次结构

重点

程序的局部性原理 在某一段时间内频繁访问某一局部的存器地址空间,而对此范围以外的地址空间则很少访问的现象称为程序的局部性原理 程序的局部性可以从两个角度分析。 1. 时间局部性:最近被访问的信息很可能还要被访问。 2. 空间局部性:最近被访问的信息邻近地址的信息也可能被访问。

多级存储系统 外存储器则主要解决存储容量问题,以满足计算机的大容量存储要求:主存储器介于 cache 与外存之间,要求选取适当的存储容量和存取周期,使它能容纳系统的核心软件和较多的用户程序。多级存储系统的出发点是提高存储系统的性能价格比,让整个存储系统在速度上接近 cache,而在容量和价格上接近外存

存储器的分类

存储介质:目前使用的存储介质主要是半导体器件、磁性材料和光存储器。

重点

存取方式:如果存储器中任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关,这种存储器称为随机存取存储器。如果存储器只能按某种顺序来存取也就是说存取时间和存储单元的物理位置有关,这种存储器称为顺序存取存储器。如磁带存储器就是顺序存取存储器,它的存取周期较长。磁盘存储器则是半顺序(直接)存取存储器,沿磁道方向顺序存取,垂直半径方向随机存取。

读写功能:有些半导体存储器存储的内容在存储器工作过程中只能读出而不能写入,这种半导体存储器称为只读存储器 (ROM)。在存储器工作过程中既能读出又能写入的半导体存储器称为读写存储器或随机存取存储器 (RAM)

信息易失性:断电后信息消失的存储器,称为易失性存储器。断电后仍能保存信息的存储器,称为非易失性存储器

与 CPU 的耦合程度:根据存储器在计算机系统中所处的位置,可分为内部存储器和外部存储器。内存又可分为主存和高速缓冲存储器

RAM 的分类:RAM 可以根据信息储存方法分为静态 RAM(SRAM) 和动态 RAM(DRAM)。

ROM 的分类:只读存储器又分为掩膜 ROM、一次可编程 ROM(PROM) 和可擦除 PROM(EPROM),后者又分为紫外线擦除 EPROM(UV-EPROM)、电擦除 EPRON(EEPROM 或 PROM) 和闪速 (Flash) 只读存储器。

存储器的编址和端模式

重点

存储器的编址:存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址称为字地址。而存放一字节的单元,称为字节存储单元,相应的地址称为字节地址 如果计算机中编址的最小单位是字存储单元,则该计算机称为按字编址的计算机。如果计算机中编址的最小单位是字节,则该计算机称为按字节编址的计算机。

大端/小端:模式则将一个字的低有效字节放在内存的低地址端,高有效字节放在内存的高地址端。

存储器的性能指标

存储容量:存储容量指一个存储器中可存储的信息比特数 存储容量也可表示为:存储字数(存储单元数)\(\times\)存储字长(每单元的比特数)。

存取时间:又称存储器访问时间,是从存储器接收到读/写命令开始到信息被读出或写入完成所需的时间,取决于存储介质的物理特性和寻址部件的结构。

存储周期(存取周期):是在存储器连续读写过程中一次完整的存取操作所需的时间,即 CPU 连续两次访间存储器的最小间隔时间。通常,存储周期略大于存取时间。

重点

存储器带宽:单位时间里存储器所存取的信息量,通常以位秒或字节/秒做度量单位。若系统的总线宽度为\(W\)位,则带宽=\(W/\)存取周期 (bits)。

静态随机存取存储器

基本的静态存储元阵列:SRAM 用锁存器(触发器)作为存储元。只要直流供电电源一直加在这个记忆电路上,它就无限期地保持记忆的 1 状态或 0 状态。如果电源断电,则存储的数据 (1 或 0) 就会丢失

SRAM

SRAM 逻辑结构 门 G1 和 G2 是互锁的,一个开启时另一个必定关闭,这样保证了读时不写,写时不读。

重点

SRAM 时序 地址有效->片选有效->读/写使能->有效数据

例题

例:SRAM 时序

存储器容量扩充

例题

例:位扩展 例:字扩展

动态随机存取存储器

DRAM

DRAM 工作原理:其中 MOS 管作为开关使用,而所存储的信息 1 或 0 则是由电容器上的电荷量来体现一一当电容器充满电荷时,代表存储了 1,当电容器放电没有电荷时,代表存储了 0。 读出过程破坏了电容上存储的信息,所以要把信息重新写入,即刷新。读出的过程中可以完成刷新 与 SRAM 相比,DRAM 的存储元所需元件更少,所以存储密度更高。但是 DRAM 的附属电路比较复杂,访问时需要额外的电路和操作支持

DRAM 逻辑结构 将地址分为行、列两部分分时传送。

重点

DRAM 时序 行地址有效->行片选有效->列地址有效->列片选有效->读/写使能->有效数据

重点

DRAM 刷新操作 当前主流的 DRAM 器件的刷新间隔时间(刷新周期)为 64ms。周期性的刷新操作是与读/写操作交替进行的,所以通过 2 选 1 多路开关选择刷新行地址或正常读/写的行地址 在集中式刷新策略中,每一个刷新周期中集中一段时间对 DRAM 的所有行进行刷新。64ms 的刷新周期时间可以分为两部分:前一段时间进行正常的读/写操作;后一段时间作为集中刷新操作时间,连续刷新 8192 行。由于刷新操作的优先级高,刷新操作时正常的读/写操作被暂停,数据线输出被封锁。等所有行刷新结束后,又开始正常的读/写周期。由于在刷新的过程中不允许读/写操作,集中式刷新策略存在“死时”。 在分散式刷新策路中,每一行的刷新操作被均匀地分配到刷新周期时间内。由于 64ms 除以 8192 约等于 7.8us,所以 DRAM 每隔 7.8us 刷新一行。

突发传输模式:在存储器同一行中对相邻的存储单元进行连续访问的方式,突发长度可以从几字节到数千字节不等。由于访问地址是连续的,因而只需要向存储器发送一次访问地址。突发访问时先激活一行,然后按照一定的顺序依次发出列选择信号,访问相应的目标存储单元。

DRAM 的发展

重点

异步 DRAM 和 SDRAM 比较

双倍数据率 SRAM(DDR DRAM):DDR SDRAM 的最大特点便是在时钟的上升沿和下降沿都能传输数据。

DRAM 读写校验 为了能纠正错误,纠错码设成\(k\)位,如果数据字为\(m\)位,则实际存储的字长为\(m+k\)位最简单的纠错码是汉明码。

重点

CDRAM(Cached DRAM) 是一种附带高速缓冲存储器的动态存储器,它是在常规的 DRAM 芯片封装内又集成了一个小容量 SRAM 作为高速缓冲存储器,从而使 DRAM 芯片的访问速度得到显著提升。

例题

8 片容量为 1Mx4 位的 CDRAM 芯片可以组成 1Mx32 位 (4MB) 的存储模块 数据总线宽度为 32 位。为了 CPU 与存储器交换数据方便,每次访存时可以由 CPU 选择实现字存取 (32 位)、半字存取(高 16 位或低 16 位)或字节存取(任意 8 位)。由于存储器按字节编址,因而每次访存数据总线上可能会传输 4 个地址(字)、2 个地址(半字)或者 1 个地址(字节)的数据。为此,CPU 送出的地址线中最低两位的 A1 和 A 并不送出,而是送出由连续四字节组成的一个 32 位字的字地址(字地址的最低两位固定为 00),外加 4 个字节允许信号 BE3~BE0。例如,当进行 32 位存取时,BE3~BE0 全有效:而存取低有效半字(与数据线 D15~D0 对应)时,BE3~BE0 为 1100(BE1 和 BE0 有效): 而当存取数据线 D23~D16 对应的字节时,BE3~BE0 为 1011(BE2 有效)。

只读存储器

重点

ROM 掩模 ROM 实际上是一个存储内容固定的 ROM,由半导体生产厂家根据用户提供的信息代码在生产过程中将信息存入芯片内。 为了让芯片的用户能更新 ROM 中存储的内容,可以使用可编程 ROM(PROM)。 闪速 (Flash) 存储器(闪存)也属于电可擦、可在线编程的非易失性只读存储器。Flash 意为擦除速度高,其擦除时间远高于传统的 UV-EPROM 和 E2PROM。闪速存储器的存储密度高,工作速度快,擦除块尺寸较大(通常在 512 字节以上),可擦除的次数相对较少 (NOR 闪存为一万到十万次)。

存储器特性比较:

并行存储器

双端口存储器*

多模块交叉存储器

顺序方式/交叉方式:

重点

交叉存储器定量分析

多模块交叉存储器的结构

例题

例:交叉存储器定量分析 二模块交叉存储器举例

cache 存储器

cache 的基本原理

重点

cache 原理 CPU 与 cache 之间的数据交换是以字为单位,而 cache 与主存之间的数据交换是以块为单位。 一个块由若干字组成,是定长的。当 CPU 读取内存中一个字时,便发出此字的内存地址到 cache 和主存。此时 cache 控制逻辑依据地址判断此字当前是否在 cache 中:若是,则 cache 命中,此字立即传送给 CPU:若非,则 cache 缺失(未命中),用主存读周期把此字从主存读出送到 CPU,与此同时,把含有这个字的整个数据块从主存读出送到 cache

重点

cache 命中率计算

例题

例:cache 命中率计算

cache 的设计需要遵循两个原则:一是希望 cache 的命中率尽可能高,实际应接近于 1;二是希望 cache 对 CPU 而言是透明的,即不论是否有 cache,CPU 访存的方法都是一样的,软件不需增加任何指令就可以访问 cache。

主存和 cache 的地址映射

重点

全相联映射 CPU 访存指令指定了一个主存地址,为了快速检索,指令中的块号与 cache 中所有行的标记同时在比较器中进行比较。如果块号命中, 则按字地址从 cache 中读取一个字:如果块号未命中,则按主存地址从主存中读取这个字。 全相联方式的主要缺点是高速比较器电路难于设计和实现,因此只适合于小容量 cache 采用。

直接映射 cache 的行号和主存的块号有如下函数关系: \[ i= j\bmod m \] 直接映射方式的优点是硬件简单,成本低,地址变换速度快。缺点是每个主存块只有个固定的行位置可存放。如果连续访问块号相距 m 整数倍的两个块,因两个块映射到同 cache 行时,就会发生冲突。

组相联映射 这种方式将 cache 分成\(u\)组,每组\(v\)行。主存块存放到哪个组是固定的,取決于主存块在主存区中是第几块。至于存到该组哪一行是灵活的,即有如下函数关系 \[ m=u\times v \quad 组号q=j\bmod u \] 为强调比较器的规模和存放的灵活程度,常称之为路组相联 cache

例题

例:直接映射 例:组相联映射 例:全相联映射

cache 的替换策略

重点

最不经常使用(LFU) LFU 算法认为应将一段时间内被访问次数最少的那行数据换出。为此,每行设置一个计数器。新行调入后从 0 开始计数,每访问一次,被访行的计数器增 1。当需要替换时,对这些特定行的计数值进行比较,将计数值最小的行换出,同时将这些特定行的计数器都清零。

近期最少使用(LRU) LRU 算法将近期内长久未被访过的行换出。为此,每行也设置一个计数器,但它们是 cache 每命中一次,命中行计数器清零,其他各行计数器增 1。当需要替换时,比较各特定行的计数值,将计数值最大的行换出。 对 2 路组相联的 cache 来说,LRU 算法的硬件实现可以简化。因为一个主存块只能在个特定组的两行中来做存放选择,二选一完全不需要计数器,只需一个二进制位即可。

随机替换:从特定的行位置中随机地选取一行换出即可。

cache 的写操作策略

重点

写回法要求:当 CPU 写 cache 命中时,只修改 cache 的内容,而不立即写入主存:只有当此行被换出时才写回主存。这种方法使 cache 真正在 CPU-主存之间读/写两方面都起到高速缓存作用。对一个 cache 行的多次写命中都在 cache 中快速完成,只是需要替换时オ写回速度较慢的主存,减少了访问主存的次数。实现这种方法时,每个 cache 行必须配置一个修改位,以反映此行是否被 CPU 修改过。当某行被换出时,根据此行修改位是 1 还是 0,来决定将该行内容写回主存还是简单弃去。如果 CPU 写 cache 命中,为了包含欲写字的主存块在 cache 分配一行,将此块整个复制到 cache 后对其进行修改。主存的写修改操作统一留到换出时再进行。显然,这种写 cache 与写主存异步进行的方式可显著减少写主存次数,但是存在不一致性的隐患。

全写法要求:当写 cache 命中时, cache 与主存同时发生写修改,因而较好地维护了 cache 与主存的内容的一致性。当写 cache 末命中时,只能直接向主存进行写入。但此时是否将修改过的主存块取到 cache,有两种选择方法:一种称为 WTWA 法,取主存块到 cache 并为它分配一个行位置:另一种称为 WTNWA 法,不取主存块到 cache。

写一次法是基于写回法并结合全写法的写策略:写命中与写未命中的处理方法和写回法基本相同,只是第一次写命中时要同时写入主存

例题

例:多级 cache 性能计算

虚拟存储器

虚存的基本概念

重点

希望在编制程序时独立编址,既不考虑程序是否能在物理存储器中存放得下(因为这与程序运行时的系统配置和当时其他程序的运行情況有关,在编程时一般无法确定), 也不考虑程序应该存放在什么物理位置。而在程序运行时,则分配给每个程序一定的运行空间,由地址转换部件(硬件或软件)将编程时的地址转换成实际内存的物理地址。如果分的内存不够,则只调入当前正在运行的或将要运行的程序块(或数据块), 其余部分暂时留在辅存中。 这样,用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间:而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。程序进行虚地址到实地址转换的过程称为程序的再定位。

虚存的访问过程 虚存空间的用户程序按照虚地址编程并存放在辅存中。程序运行时,由地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。每次访存时,首先判断该虚地止所对应的部分是否在实存中:如果是,则进行地址转换并用实地址访问主存;否则按照某种算法将辅存中的部分程序调度进内存,再按同样的方法访问主存。 每个程序的虚地址空间可以远大于实地址空间,也可以远小于实地址空间。前一种情況以提高存储容量为目的,后一种情況则以地址变换为目的。后者通常出现在多用户或多任务系统中。

cache 和虚存的异同

  • 出发点相同:二者都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。 ​- 原理相同:都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。
  • 侧重点不同:cache 主要解决主存与 CPU 的速度差异问题;而就性能价格比的提高而言,虚存主要是解決存储容量问题,另外还包括存储管理、主存分配和存储保护等方面。
  • 数据通路不同:CPU 与 cache 和主存之间均可以有直接访问通路, cache 不命中时可直接访问主存:而虚存所依赖的辅存与 CPU 之间不存在直接的数据通路,当主存不命中时只能通过调页解決,CPU 最终还是要访问主存。
  • 透明性不同:cache 的管理完全由硬件完成,对系统程序员和应用程序员均透明;而虚存管理由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透明,而只对应用程序员透明(段式和段页式管理对应用程序员“半透明”)
  • 未命中时的损失不同:由于主存的存取时间是 cache 的存取时间的 5~10 倍,而主存的存取速度通常比辅存的存取速度快上千倍,故主存未命中时系统的性能损失要远大于 cache 未命中时的损失。

页式虚存

重点

页式虚拟存储系统中,虚地止空间被分成等长的页,称为逻辑页;主存空间也被分成同样大小的页,称为物理页。相应地,虚地址分为两个字段:高字段为逻辑页号,低字段为页内地址(偏移量);实存地址也分为两个字段:高字段为物理页号,低字段为页内地址。 通过页表可以把虚地址(逻辑地址)转换成物理地址。 在大多数系统中,每个进程对应一个表。页表中对应每一个虚存页面有一个表项, 表项的内容包含该虚存页面所在的主存页面的地址(物理页号),以及指示该逻辑页是否已调入主存的有效位。地址变换时,用逻辑页号作为页表内的偏移地址索引页表(将虚页号看作页表数组下标)并找到相应物理页号,用物理页号作为实存地址的高字段,再与虚地址的页内偏移量拼接,就构成了完整的物理地址。

内页表和外页表:上面所说的页表是虚地址到主存物理地址的变换表,通常称为内页表。与内页表对应的还有外页表,用于虚地址与辅存地址之间的变换。当主存缺页时,调页操作首先要定位存,而外页表的结构与辅存的寻址机制密切相关。

重点

TLB 为了避免对主存访问次数的增多,可以对页表本身实行二级缓存,把页表中最活跃的部分存放在高速存储器中。这个专用于页表缓存的高速存储部件通常称为转换后援缓冲器 (TLB), 又称为快表。而保存在主存中的完整页表则称为慢表。快表的作用是加快地址变换。 TLB 的作用与主存和 CPU 之间的 cache 作用相似,通常由相联存储器实现,容量比慢表小得多,存储慢表中部分信息的副本,可以完成硬件高速检索操作。地址变换时,根据逻辑页号同时査快表和慢表,当在快表中有此逻辑页号时,就能很快地找到对应的物理页号

例题

例:页式虚存、TLB 和 cache 的关系

段式虚存和段页式虚存

重点

段式虚存 段是按照程序的自然分界划分的长度可以动态改变的区域。通常,程序员把子程序、操作数和常数等不同类型的数据划分到不同的段中,并且每个程序可以有多个相同类型的段。 在段式虚拟存储系统中,虚地址由段号和段内地址(偏移量)组成。虚地址到实主存地址的变换通过段表实现。每个程序设置一个段表,段表的每一个表项对应一个段。每个表项至少包含下面三个字段: (1) 有效位指明该段是否已经调入实存。 (2) 段起址指明在该段已经调入实存的情況下,该段在实存中的首地址。 (3) 段长记录该段的实际长度。设置段长字段的目的是保证访问某段的地址空间时, 段内地址不会超出该段长度导致地址越界而破坏其他段。 针对每个虚地址,存储管理部件首先以段号 s 为索引访问段表的第 s 个表项。若该表项的有效位为 1,则将虚地址的段内偏移量 d 与该表项的段长字段比较:若偏移量较大则说明地址越界,将产生地址越界中断:否则,将该表项的段起址与段内偏移量相加,求得主存实地址并访存。如果该表项的有效位为 0,则产生缺段中断,从辅存中调入该段,并修改段表。

段页式虚存 实存被等分成页。每个程序先按逻辑结构分段,每段再按照实存的页大小分页,程序按页进行调入和调出操作,但可按段进行编程、保护和共享。 在段页式虚拟存储系统中,每道程序均通过一个段表和多个页表进行两级再定位。段表中的每个表项对应一个段,每个表项有一个指针指向该段的页表。页表则指明该段各页在主存中的位置,以及是否装入、是否已修改等状态信息。 一个虚地址由段号、段内页号和页内偏移量构成。在多任务系统中,操作系统还会在每个虚地址前面加一个表明该程序在系统中的序号的基号。一个虚地址可以看作由四个字段构成

例题

例:段页式虚存 例:虚存的替换算法

MMU:存储管理部件 (Memory Management Unit, MMU) 是系统中进行虚实地址转换的核心部件。MMU 的主要功能有:在 TLB 的协助下完成虚实地址转换;维护 TLB 的控制机制;负责存储保护;在 TLB 失效或非法访问时向处理器发起中断;维护一个 TLB 失效后的再填充机制 (table walking)

第 4 章 指令系统

指令系统的发展与性能要求

微指令/宏指令/指令:微指令是微程序级的命令,它属于硬件;宏指令是由若干条机器指令组成的软件指令,它属于软件;而机器指令则介于微指令与宏指令之间通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作。

一台计算机中所有机器指令的集合,称为这台计算机的指令系统(指令集)

指令系统所谓百分比 20:80 的规律,即最常使用的简单指令仅占指令总数的 20%,但在程序中出现的频率却占 80%。

RISC 和 CISC 比较

指令系统的性能要求: - 完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。 - 有效性是指利用该指令系统所编写的程序能够高效率地运行。 - 规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。 - 对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式。 - 匀齐性是指:一种操作性质的指令可以支持各种数据类型。 - 指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。 - “向上兼容”,即低档机上运行的软件可以在高档机上运行。

高级语言和低级语言比较

指令格式

机器字/指令字:机器指令是用机器字来表示的。表示一条指令的机器字,就称为指令字,

指令格式,则是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成

操作码

重点

等长操作码:一般来说,一个包含\(n\)位的操作码最多能够表示\(2^n\)条指令

可变长度操作码

地址码

四地址指令

三地址指令

二地址指令

一地址指令

零地址指令

重点

二地址指令的三种类型 - 第一种是访问内存的指令格式,我们称这类指令为存储器存储器 (SS) 型指令。 - 第二种是访问寄存器的指令格式,我们称这类指令为寄存器寄存器 (RR) 型指令。 - 第三种类型为寄存器-存储器 (RS) 型指令

指令字长度/机器字长

一个指令字中包含二进制代码的位数,称为指令字长度。而机器字长是指计算机能直接处理的二进制数据的位数,它決定了计算机的运算精度。机器字长通常与主存单元的位数一致。指令字长度等于机器字长度的指令,称为单字长指令;指令字长度等于半个机器字长度的指令,称为半字长指令;指令字长度等于两个机器字长度的指令,称为双字长指令

等长指令字结构:在一个指令系统中,如果各种指令字长度是相等的,称为等长指令字结构,它们可以都是单字长指令或半字长指令。

变长指令字结构:如果各种指令字长度随指令功能而异,如有的指令是单字长指令,有的指令是双字长指令,就称为变长指令字结构。

例题

例:扩展操作码

指令助记符

例题

例:分析指令格式特点 例:汇编语言翻译成机器语言

操作数类型

  • 地址数据:地址实际上也是一种形式的数据。
  • 数值数据:计算机中普遍使用的三种类型的数值数据是:①定点整数或定点小数;②浮点数;③压缩十进制数。
  • 字符数据:也称为文本数据或字符串。
  • 逻辑数据:一个单元由若干二进制位项组成,每个位的值可以是 1 或 0。

指令和数据的寻址方式

指令的寻址方式

操作数的基本寻址方式

重点

- 隐含寻址:这种类型的指令,不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址 - 立即寻址:指令的地址字段指出的不是操作数的地址,而是操作数本身 - 直接寻址:直接寻址是一种基本的寻址方法,其特点是:在指令格式的地址字段中直接指出操作数在内存的地址 A - 间接寻址:在间接寻址的情下,指令地址字段中的形式地址 A 不是操作数 D 的真正地址,而是操作数地址的指示器。 - 寄存器寻址:当操作数不在内存中,而是放在 CPU 的通用寄存器中时,可采用寄存器寻址方式 - 寄存器间接寻址:寄存器间接寻址与寄存器寻址的区别在于:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中 - 偏移寻址:一种强有力的寻址方式是直接寻址和寄存器间接寻址方式的结合,它有几种形式,我们称它为偏移寻址 - 相对寻址:隐含引用的专用寄存器是程序计数器 (PC),即 EA=A+(PC),它是当前 PC 的内容加上指令地址字段中 A 的值。 - ​基址寻址:被引用的专用寄存器含有一个存储器地址,地址字段含有一个相对于该地址的偏移量(通常是无符号整数)。 - 变址寻址:地址域引用一个主存地址,被引用的专用寄存器含有对那个地址的正偏移量 - 段寻址: - 堆栈寻址:堆栈有寄存器堆栈和存储器堆两种形式,它们都以先进后出的原理存储数据

例题

例:寻址方式

典型指令

指令的分类

数据传送指令:数据传送指令主要包括取数指令、存数指令、传送指令、成组传送指令、字节交换指令、清寄存器指令、堆機操作指令等,这类指令主要用来实现主存和寄存器之间,或寄存器和寄存器之间的数据传送。

算术运算指令:这类指令包括二进制定点加、减、乘、除指令,浮点加、减、乘、除指令,求反、求补指令,算术移位指令,算术比较指令,十进制加、减运算指令等。这类指令主要用于定点或浮点的算术运算。

逻辑运算指令:这类指令包括逻辑加、逻辑乘、按位加、逻辑移位等指令,主要用于无符号数的位操作、代码的转换、判断及运算。

程序控制指令:程序控制指令也称转移指令。 机器执行到某条指令时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果进行转移,从而改变程序原来执行的顺序。这种转移指令称为条件转移指令。 除各种条件转移指令外,还有无条件转移指令、转子程序指令、返回主程序指令、中析返回指令等。

输入输出指令:输入输出指令主要用来启动外围设备,检査测试外围设备的工作状态,并实现外部设备和 CPU 之间,或外围设备与外围设备之间的信息传送。

字符串处理指令;字符串处理指令是一种非数值处理指令,一般包括字符串传送、字符串转换(把一种编码的字符串转换成另一种编码的字符串)、字符串比较、字符串査找(査找字符串中某一子串)、字符串抽取(提取某一子串)、字符串替换(把某一字符串用另一字符串替换)等。

特权指令:特权指令是指具有特殊权限的指令。由于指令的权限最大,若使用不当,会破坏系统和其他用户信息。因此这类指令只用于操作系统或其他系统软件,一般不直接提供给用户使用。

其他指令:除以上各类指令外,还有状态寄存器置位、复位指令、测试指令、暂停指令、空操作指令,以及其他一些系统控制用的特殊指令。

基本指令系统的操作

作者

xqmmcqs

发布于

2022-06-14

更新于

2023-03-29

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×