【计算机组成原理】王道指令系统学习笔记

您所在的位置:网站首页 指令的地址码是不可缺少的吗 【计算机组成原理】王道指令系统学习笔记

【计算机组成原理】王道指令系统学习笔记

2024-07-17 11:29:08| 来源: 网络整理| 查看: 265

目录

指令格式

按指令数目分类:

按指令长度分类:

按操作码的长度分类

按操作类型分类

拓展操作码

定长操作码与拓展操作码

指令寻址

顺序寻址

跳跃寻址

数据寻址

十种寻址方式

CISC和RISC

指令格式

何为指令?(指令定义)

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

比如说x86架构和ARM架构,目前的Intel电脑芯片基本上都是支持x86架构的,而手机芯片一般是使用ARM架构,因此在手机上的app不能够直接在电脑上运行。因为两个不同的架构所拥有的指令系统是不一样的。

一条指令就是及其语言的一个子句,它是一组有意义的二进制代码。一条指令通常要包括操作码字段和地址码字段两个部分。根据一条指令可能包含几个地址码数目的不同,可将指令的分为零地址指令、一地址指令、二地址指令... 按指令数目分类: 零地址指令

不需要操作数,如空操作、停机、关中断等指令堆栈计算机:两个操作数隐含存放在栈顶和次栈顶,计算结果压回栈顶。(后缀表达式) 一地址指令

只需要简单操作数,如加1、减1、取反、求补等

指令含义:OP(A1)--->A1 A1为某个主存地址

完成一条指令需要3次访存:取指--->读A1--->写A1

需要两个操作数,但其中一个操作数隐含在某个寄存器(如隐含在ACC)

指令含义:(ACC)OP(A1)--->ACC

完成一条指令需要2次访存:取指--->读A1(存结果到寄存器中不需要执行,因此两次就可以了)

二地址指令

常用于两个操作数的算数运算、逻辑运算相关指令

指令含义:(A1)OP(A2)--->A1

完成一条指令需要访存4次:取指--->读A1--->读A2--->写A1

三地址指令

常用于需要两个操作数的运算符、逻辑运算相关指令

指令含义:(A1)OP(A2)--->A3

完成一条指令需要访存4次:取指--->读A1--->读A2--->写A3

四地址指令

指令含义:(A1)OP(A2)--->A3 ,A4=下一条将要执行指令的地址

完成一条指令需要访存4次:取指--->读A1--->读A2--->写A3

按指令长度分类:

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

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

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

指令字长

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

机器字长

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

存储字长

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

按操作码的长度分类

定长操作码

指令系统中所有指令的操作码长度相同

n位-->条指令

控制器的译码电路设计简单,但灵活性较低

可变长操作码

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

控制器的译码电路设计复杂,但灵活性较高

定长指令字结构+可变长操作码------>拓展操作码指令格式 按操作类型分类

数据传送类:进行主存与CPU之间的数据传送

程序控制类:改变程序执行的顺序

算数类:实现了各种运算,算数、逻辑、移位

输入输出类(I/0) :进行CPU和I/0设备之间的数据传送

数据传送(数据传输类)

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

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

算数逻辑操作(运算类)

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

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

移位操作(运算类)

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

转移操作(程序控制类)

无条件转移JMP

条件转移 JZ:结果为0 ;

JO: 结果溢出;

JC:结果有进位。

调用和返回CALL和RETURN

陷阱(Trap)与陷阱指令

输入输出操作(输入输出类I/O)

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

拓展操作码

每个指令字长是16位,每个地址码占4位

4位基本操作码若全部用于三地址指令,则有16条。

但至少须将1111留作扩展操作码之用,即三地址指令为15条;

(留下1111拓展码的作用是为了让计算机在识别前4位为1111时能够知道这是一条二地址码,而不是一条三地址码。)

1111 1111留作扩展操作码之用,二地址指令为15条;

1111 1111 1111留作扩展操作码之用,一地址指令为15条;

零地址指令为16条;

在设计操作码指令格式时的注意点:

不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同;各指令的操作码一定不能重复。

(这就是为什么留下1111为拓展码的原因了!)

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

拓展操作码举例

定长操作码与拓展操作码

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

一般n位 操作码字段的指令系统最大能够表示条指令。.优:定长操作码对于简化计算机硬件设计,提高指令译码和识别速度很有利;缺:指令数量增加时会占用更多固定位,留给表示操作数地址的位数受限。

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

最常见的变长操作码方法是扩展操作码,使操作码的长度随地址码的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而在满足需要的前提下,有效地缩短指令字长。优:在指令字长有限的前提下仍保持比较丰富的指令种类;缺:增加了指令译码和分析的难度,使控制器的设计复杂化。

指令寻址 顺序寻址

如何确定下一条指令的地址?

程序计数器PC--->指明下一条指令的存放地址 (PC)+1---->PC

若系统采用定长指令子结构,指令字长=存储字长=16bit=2B,主存按字编址

指令寻址下一条欲执行的指令的地址始终是由程序计数器PC给出的。

归纳为 (PC)+“1”---->PC 这里的1理解为1个指令字长,实际加的值会因指令长度、编址方式而不同!

按字编址

按字节编址

按字编址和按字节编址的疑惑解答:

这里的解答是在参考白芷加茯苓的回答后我的理解。

为什么当时不能理解这个问题,首先是不清楚字和字节的概念。

存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址叫字地址。存放一个字节的存储单元,称为字节存储单元,相应的地址称为字节地址。如果计算机中可编程的最小单位是字存储单元,则该计算机称为按字寻址的计算机。如果计算机中可编程的最小单位是字节,则该计算机称为按字节寻址的计算机。一个机器字可以包含数个字节,所以一个存储单元也可以包含数个能够单独编制的字节地址。例如,一个16位二进制的字存储单元可存放两个字节,可以按字编址,也可以按字节编址。当用字节编址时,16位的存储单元占两个字节地址。

因此,一条指令中包含了两个字节,于是相邻的两条指令之间的地址间隔自然就是2了。

变长指令字结构

跳跃寻址

数据寻址

确定本条指令的地址码指明的真实地址

在计算机内部,同一时刻可能存在许多个程序在并发的进行,因此不可能保证运行的程序从地址为0开始的地方开始存储,比如下面右图中从100开始存储,当执行到JMP时并不会向左边图中一样跳转到LDA,此时与预期执行的第107程序并不相符,这样显然是不合理的。

综上所述,如何解读地址码7的含义?可以理解为从起始地址码开始向后偏移7个。

十种寻址方式

一地址指令:

二地址指令

加上寻址特征,求出操作数的真实地址则称为---->有效地址

直接寻址

间接寻址

寄存器寻址

寄存器间接寻址

隐含寻址

6c8ba974a75fd9133de05d2312b64c6a.png

立即寻址

本章小结

偏移寻址

偏移寻址包括基址寻址、变址寻址和相对寻址三类。

基址寻址:以程序的起始存放地址作为“起点”

注:基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变( 作为偏移量)。

变址寻址:程序员自己决定从哪里作为“起点”

注:

变址寻址:有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,即EA= (IX)+A,其中IX可为变址寄存器(专用),也可用通用寄存器作为变址寄存器。变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变(作为偏移量),形式地址A不变(作为基地址)

优点:

在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器lX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。

此外,在实际运用过程中,常常会使用多种寻址方式进行复合来寻找地址。比如基址寻址&变址寻址的复合寻址方式。

相对寻址:以程序计数器PC所指地址作为“起点”

优点:

操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间总是相差一个固定值,因此便于程序浮动(f段代码在程序内部的浮动)。相对寻址广泛应用于转移指令。

堆栈寻址

CISC和RISC

声明:本文图片来源于王道课程!本文仅用于学习。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭