计算机组成原理第四章总结

本文详细介绍了计算机指令系统的格式,包括定长和扩展操作码指令,以及零、一、二、三、四地址指令。同时,讨论了指令的寻址方式,如顺序和跳跃寻址,并详细阐述了隐含、立即、直接、间接、寄存器、寄存器间接、相对、基址、变址和堆栈寻址。此外,对比了CISC和RISC的特性,CISC以其复杂的指令集和多样的寻址方式,而RISC则以精简的指令集和固定长度指令为特点。
摘要由CSDN通过智能技术生成

目录

4.1 指令格式

4.1.1 指令的基本格式

4.1.2 定长操作码指令格式

4.1.3 扩展操作码指令格式

4.2 指令的寻址方式

4.2.1 数据寻址和指令寻址

指令寻址方式有两种:顺序寻址方式、跳跃寻址方式

数据寻址

4.2.2 常见数据寻址方式

1.隐含寻址:

2.立即(数)寻址:

3.直接寻址:

4.间接寻址:

5.寄存器寻址:

6.寄存器间接寻址:

7.相对寻址:

8.基址寻址:

9. 变址寻址:

10.堆栈寻址:

4.3 CISC和RISC的基础概念

4.3.1复杂指令系统计算机CISC

主要特点:

4.3.2精简指令系统计算机RISC

主要特点:


4.1 指令格式

(机器)指令是指示计算机执行某种操作的命令。一台计算机的所有指令的集合构成该机的指令系统(指令集)。位于硬件和软件的交界面上。

4.1.1 指令的基本格式

                   操作码字段                      地址码字段

1.操作码:反应机器做什么操作。操作码是识别指令、了解指令功能及区分操作数地址内容的组成和使用方法等的关键信息。

1)长度固定:用于指令字长较长的情况,RISC,如IBM 370 操作码8位==>最大指令256条

2)长度可变:操作码分散在指令字的不同字段中

一条指令必须包含下列信息:

1)操作码

2)操作数的地址

3)操作结果的存储地址

4)下一条指令的地址

2.零地址指令:指令中只有操作吗,没有地址码

格式:

                     OP

两种可能:

1)不需要操作数的指令,如空操作指令、停机指令、关中断指令等

2)零地址的运算类指令仅用在堆栈计算机中。通常参与运算的两个操作数隐含地从栈顶和次栈顶弹出,送到运算器进行运算,运算结果再隐含地压入堆栈

3.一地址指令:只有一个操作数的存储器地址或寄存器名

格式:

         OP         A1

可能:

1)只有目的操作数的单操作数指令,按A地址读取操作数,进行OP操作后,结果存回原地址

含义:OP(A) ==> A

2)隐含约定目的地址的双操作数指令,按指令地址A可读取源操作数,指令可隐含约定另一个操作数由ACC提供,运算结果也将存放在ACC中

含义:(ACC)OP(A) ==> ACC

4.二地址指令

格式:

                 OP                A1                  A2

指令含义:(A1)OP(A2) ==> A1,如a = a + b

5.三地址指令

格式:

            OP          A1          A2          A3(结果)

指令含义:(A1)OP(A2) ==> A3,如c = a + b

6.四地址指令:

格式:

        OP         A1      A2       A3(结果)       A4(下址)

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

7.补充:

1)指令字长:一条指令所占用存储空间的大小

2)如果某指令的长度等于机器字长,则称此指令为单字长指令;等于机器字长的一半,则称此指令位半字长指令;等于机器字长的两倍,则称此指令为双字长指令

3)如果计算机中的某一个子表示的是一个数据,则称此字为数据字;如果计算机中的某一个字表示的是一条指令,则称此字为指令字

4.1.2 定长操作码指令格式

指令字长决定于:操作码的长度、操作数地址的长度、操作数地址的个数

1.指令字长 固定

指令字长 = 存储字长

若操作码长度为K位,最多只能有2^k条不同指令

2.指令字长 可变

按字节的倍数变化

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

4.1.3 扩展操作码指令格式

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

将增加指令译码和分析的难度,使控制器的设计复杂化

扩展操作码使操作码的长度随地址码的减少而增加

2.设计操作码时要注意:

1)不允许较短的操作码是较长的操作码的前缀,这样译码会出现歧义;即短操作码不能与长操作码的前面部分的代码相同

2)各条指令的操作码一定不可以重复

3.指令的操作类型:

1)数据传送:传送指令通常有寄存器之间的传送(MOV)、从内存的那远读取数据到CPU寄存器(LOAD)、从CPU寄存器写数据到内存单元(STORE)等。

2)算术和逻辑运算:主要有加(ADD)、减(SUB)、比较(CMP)、乘(MUL)、除(DIV)、加1(INC)、减1(DEC)、与(AND)、或(OR)、取反(NOT)、异或(XOR)等。

3)移位操作:移位指令主要有算法移位、逻辑移位、循环移位等

4)转移操作:转移指令主要有转移(JMP)、条件转移(BRANCH)、调用(CALL)、返回(RET)、陷阱(TRAP)等

调用指令和转移指令的区别:执行调用指令时必须保存下一条指令的地址(返回地址),当子程序执行结束时,根据返回地址返回到主程序继续执行;而转移指令则不返回执行

5)输入输出操作:这类指令用于完成CPU与外部设备交换数据或传送控制命令及状态信息你

1)程序控制类指令用于改变程序执行的顺序,并使程序具有测试、分析、判断和循环执行的能力

2)程序控制类指令主要包括无条件转移、有条件转移、子程序调用和返回指令、循环指令等。中断隐指令是由硬件实现的,并不是指令系统中存在的指令

4.2 指令的寻址方式

寻址方式:确定本条指令的操作数地址及下一条欲执行指令的指令地址

有效地址:操作数的真实地址称为有效地址,记作EA

寻址方式:指令寻址 / 数据寻址

4.2.1 数据寻址和指令寻址

指令寻址方式有两种:顺序寻址方式、跳跃寻址方式

1.顺序寻址可通过程序计数器(PC)加1(1个指令字长),自动形成下一条指令的地址。

2.跳跃寻址通过转移类指令实现。

1)所谓跳跃,是指下条指令的地址码不由PC给出,而是由本条指令给出下条指令地址的计算方式

2)是否跳跃可能受到状态寄存器和操作数的控制

数据寻址

1.数据寻址是指如何在指令中表示一个操作数的地址,如何用这种表示得到操作数或怎样计算出操作数的地址。

2.数据寻址的方式较多,为区别各种方式,通常在指令字中设一个字段,用来指明属于哪种寻址方式,格式:

    操作码    寻址特征    形式地址A

形式地址:指令字中的地址

有效地址:操作数的真实地址

4.2.2 常见数据寻址方式

1.隐含寻址:

不明显地给出操作数的地址,而是在指令中隐含操作数的地址。

优点:有利于缩短指令字长

缺点:需要增加存储操作数或隐含地址的硬件

2.立即(数)寻址:

这种类型的指令的地址字段指出的不是操作数的地址,而是操作数本身,又称立即数。数据以补码形式存放。

A就是操作数本身

优点:指令在执行阶段不访问主存,指令执行时间最短

缺点:A地位数限制了立即数的范围

3.直接寻址:

指令字中的形式地址A是操作数的真实地址EA,即EA = A

优点:简单,指令在执行阶段仅访问一次主存,不需要专门计算操作数的地址

缺点:A的位数决定了该指令操作数的寻址范围,操作数的地址不易修改

4.间接寻址:

是相对于直接寻址而言的,指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元的地址,也就是操作数地址的地址,即EA = (A),

间接寻址可以是一次间接寻址,也可以是多次间接寻址

主存字第一位为1时,表示取出的仍不是操作数地址,即多次间址

主存字第一位为0时,表示取得的是操作数的地址

优点:可扩大寻址范围(有效地址EA的位数大于形式地址A的位数),便于编制程序(用间接寻址可方便地完成子程序返回)

缺点:指令在执行阶段需要多次访存

注:由于访问速度过慢,这种寻址方式不常用。一般问道扩大寻址范围时,通常指的是寄存器间接寻址

5.寄存器寻址:

寄存器寻址是指在指令字中直接给出操作数所在寄存器编号,即EA = Ri,其操作数在由Ri所指的寄存器内

优点:指令在执行阶段不访问主存,只访问寄存器,因寄存器数量较少,对应地址码长度较小,使得指令字短且因不用访存,所以执行速度快,支持向量/矩阵运算

缺点:寄存器价格昂贵,计算机中的寄存器个数有限

6.寄存器间接寻址:

在寄存器Ri中给出的不是一个操作数,而是操作数所在的主存单元地址,即EA = (Ri)

特点:与一般间接寻址相比速度更快,但指令的执行阶段需要访问主存(因为操作数在主存中)

7.相对寻址:

把PC的内容加上指令格式中的形式地址A而形成操作数的有效地址

优点:操作数的地址不是固定的,它随PC值的变化而变化,且与指令地址之间总是相差一个固定值,因此便于程序浮动

:对于转移指令JMP A,当CPU从存储器中取出一字节时,会自动执行(PC) + 1 --> PC。若转移指令地址为X,且占2B,在取出该指令后,PC的值会增加2,即(PC) = x + 2,

这样在执行完该指令后,会自动跳转到X + 2 +A的地址继续执行

8.基址寻址:

将CPU中基址寄存器(BR)的内容家伙是那个指令格式中的形式地址A而形成操作数的有效地址,即EA = (BR) + A

基址寄存器是面向OS的,其内容由OS或管理程序确定,主要用于解决程序逻辑空间与存储器空间的无关性

优点:可扩大寻址范围;用户不必考虑自己程序存于主存的哪个空间区域,因此有利于多道程序设计,并可用于编制浮动程序

缺点:偏移量(形式地址A)的位数较短

 

9. 变址寻址:

指有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容之和,即EA = (IX) + A。面向用户

优点:可扩大寻址范围;在数组处理过程中,可设定A为数组首地址,不断改变变址寄存器IX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序

10.堆栈寻址:

堆栈是存储器中一块特定的、按后进先出(LIFO)原则管理的存储器

 

4.3 CISC和RISC的基础概念

4.3.1复杂指令系统计算机CISC

主要特点:

1)指令系统复杂庞大,指令数目一般为200条以上

2)指令的长度不固定,指令格式多,寻址方式多

3)可以访存的指令不受限制

4)各种指令使用频率相差较大

5)各种指令执行时间相差较大,大多数指令需多个时钟周期才能完成

6)控制器大多数采用微程序控制。有些指令非常复杂,以至于无法采用硬连线控制

7)难以用优化编译生成高效的目标代码程序

4.3.2精简指令系统计算机RISC

主要特点:

1)选取使用频率最高的一些简单指令,复杂指令的功能由简单指令的组合来实现,一般小于100条

2)指令长度固定,指令格式种类少,寻址方式种类少

3)只有Load/Store(取数/存数)指令访存,其余指令的操作都在寄存器之间进行

4)CPU中通用寄存器的数量相当多

5)RISC一定采用指令流水线技术,大部分指令在一个CPI内完成

6)以硬布线控制为主,不用或少用微程序控制

7)特别重视编译优化工作,以减少程序执行时间

注:CISC大多能实现软件兼容;但RISC简化了指令系统,指令条数少,格式也不同于老机器,因此大多数RISC机不能和老机器兼容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值