计算机组成原理--指令

本文详细介绍了计算机指令系统的组成,包括取指周期、操作码和地址码字段的作用,以及指令字长固定和可变的优缺点。此外,还探讨了不同类型的寻址方式,如立即寻址、直接寻址、间接寻址等,以及它们在指令执行过程中的访存情况。同时,讲解了操作数类型和操作种类,如数据传送、算术逻辑操作和转移指令。最后,讨论了寻址方式对指令执行和寻址范围的影响。
摘要由CSDN通过智能技术生成

一、机器指令

1.取指周期

完成一条指令分4个周期:
取指周期,间址周期,执行周期,中断周期。

指令的一般格式:
操作码字段+地址码字段

1.1操作码,反映机器做什么操作

(1)长度固定

用于指令字长较长的情况,RISC。
如IBM 370 操作码8位

(2)长度可变

操作码分散在指令字的不同字段中。

2、指令字长

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

(1)指令字长固定

指令字长=存储字长

(2)指令字长可变

按字节的倍数变化

3、小结

当用一些硬件资源代替指令字中的地址码字段后:
(1)可扩大指令的寻址范围
(2)可缩短指令字长
(3) 可减少访存次数

当指令的地址字段为寄存器时
三地址 OP R1, R2, R3
二地址 OP R1, R2
一地址 OP R1

可缩短指令字长
指令执行阶段不访存

二、操作数类型和操作种类

2.1操作数类型

地址 :无符号整数
数字 :定点数,浮点数,十进制整数
字符 :ASCII
逻辑数:逻辑运算

2.2数据在存储器中的存放方式

a、从任意位置开始存储

优点:不浪费存储资源

缺点:除了访问一个字节之外,访问其他任何类型的数据都可能花费两个存储周期的时间。读写控制比较复杂。

b、从一个存储字的起始位置开始访问

优点:无论访问何种类型的数据,在一个周期内均可完成,读写控制简单。

缺点:浪费了宝贵的存储资源。

c、边界对准–从地址的整数倍位置开始访问

三、操作类型

1、数据传送

源 寄存器 寄存器 存储器 存储器
目的 寄存器 存储器 寄存器 存储器

2、算术逻辑操作

加,减,乘,除,增1,减1,求补,十进制
与,或,非,异或,位操作,位测试,位清除,位求反

3、移位操作

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

4、转移

(1)无条件转移 JMP
(2)条件转移
结果为零转(Z=1) JZ
结果溢出转(O=1)JO
结果有进位转(C=1)JC
跳过一条指令 SKP
(3)调用和返回
(4)陷阱(Trap)与陷阱指令
意外事故的中断
· 一般不提供给用户直接使用
在出现事故是,由CPU自动产生并执行(隐指令)
· 设置供用户使用的陷阱指令
提供给用户使用的陷阱指令,完成系统调用

输入输出

入 端口中的内容——>CPU的寄存器
出 CPU的寄存器——>端口中的内容

四、寻址方式

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

寻址方式:指令寻址,数据寻址。

1、指令寻址

(1)顺序寻址:(PC)+1——>PC
(2)跳跃寻址:由转移指令指出

2、数据寻址

格式:操作码+寻址特征+形式地址A
形式地址:指令字中的地址
有效地址:操作数的真实地址
约定:指令字长=存储字长=机器字长

(1)立即寻址

形式寻址A就是操作数
在这里插入图片描述
指令执行阶段不访存
A的位数限制了立即数的范围

(2)直接寻址

EA=A
有效地址由形式地址直接给出

在这里插入图片描述
执行阶段访问一次存储器
A的位数决定了该指令操作数的寻址范围
操作数的地址不易修改(必须修改A)

(3)隐含寻址

操作数地址隐含在操作码中

在这里插入图片描述指令字中少了一个地址字段,可缩短指令字长。

(4)间接寻址

EA=(A)
有效地址由形式地址间接提供
在这里插入图片描述
执行指令阶段2次访存
可扩大寻址范围
便于编制程序

(5)寄存器寻址

EA=Ri
有效期即为寄存器编号
在这里插入图片描述
执行阶段不访存,只访存寄存器,执行速度快。
寄存器个数有限,可缩短指令字长

(6)寄存器间接寻址

EA=(Ri)
有效地址在寄存器中
在这里插入图片描述
有效地址在寄存器中,操作数在储存器中,执行阶段需要访存。
便于编制循环程序。

(7)基址寻址

(一)采用专用寄存器作基址寄存器

EA=(BR)+A
BR 为基址寄存器。
在这里插入图片描述
可扩大寻址范围
有利于多道程序
BR内容由操作系统或者管理程序确定
在程序的执行过程中BR内容不变,形式地址A可变

(二)采用通用寄存器作为基址寄存器

在这里插入图片描述
由用户指定哪个通用寄存器作为基址寄存器
基址寄存器的内容由操作系统确定
在程序的执行过程中R0内容不变,形式地址A可变。

(8)变址寻址

EA=(IX)+A
IX为变址寄存器(专用)
通用寄存器也可作为变址寄存器
在这里插入图片描述

可以扩大寻址范围
IX的内容由用户给定
在程序的执行过程中IX内容不变,形式地址A不变
便于处理数组问题

(9)相对寻址

EA=(PC)+A
A是相对于当前指令的位移量(可正可负,补码)
在这里插入图片描述

A的位数决定操作数的寻址范围
程序浮动
广泛用于转移指令

(10)堆栈寻址

(一)堆栈的特点
堆栈:
硬堆栈:多个寄存器
软堆栈:制定的内存空间
先进后出(一个入出口) 栈顶地址由SP指出
进栈(SP)-1——>SP
出栈(SP)+1——>SP

在这里插入图片描述
(二)SP的修改与主存编址方法有关

在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_57175677

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值