第4章:指令系统

一:本章概述

在这里插入图片描述

指令(又称为机器指令)

是指示计算机执行某种操作的命令,是计算机运行的最小功能单位,一台计算机的所有指令的集合构成该机的指令系统,也称为指令集。
注:一台计算机只能执行自己指令系统中的指令,不能执行其他系统的指令。
在这里插入图片描述

指令格式

一条指令就是机器语言的一个语言,它是一组有意义的二进制代码。
一条指令通常要包括操作码字段和地址字段两部分。
在这里插入图片描述

四地址指令。

在这里插入图片描述
指令含义:(A1)OP(A2)->A3,A4下一条将要执行指令的地址。
设指令字长为32位,操作码占8位,4个地址码字段各占6位。
设存储字长32位,即4B
A1可直接表示2的6次方=64个不同位置。
一条指令的执行(假设每个地址都是主存地址);
取指令 访存1次(假设指令字长=存储字长)
取两个操作数 :访存2次。
存回结果 访存1次
共访存4次。

三地址指令

程序计数器PC
在这里插入图片描述
在这里插入图片描述
指令含义:(A1)OP(A2)—>A3
3个地址码字段各占8位,指令操作数直接寻址范围为2的8次方=256;完成一条指令需要访存4次。

二地址指令

在这里插入图片描述
指令含义:(A1)OP(A2)—>A1
2个地址码字段各占12位,指令操作数直接寻址范围2的12次方=4k;完成一条指令需要访存4次。

一地址指令

在这里插入图片描述

指令含义:1.OP(A1)->A1,如加1,减1,取反,求补等。

指令取出一次
A1取出一次,
A1存储一次,
完成一条指令需要访存3次。

2.(ACC)OP(A1)–>ACC,隐含约定的目的地址为ACC,

完成一条指令的需要访存2次。取指令和取A1,然后直接放在CPU中,不需要访问存储器。
1的地址吗的字段占24位,指令操作数直接寻址范围2的24次方=16M

零指令指令

在这里插入图片描述
指令含义:1.不需要操作数,如空操作,停机,关中断等指令。
2.堆栈计算机,两个操作数隐含存放在栈顶和次栈顶,计算结果压回栈顶。

以上为定长指令字结构:指令长度固定。

变长指令字机构:指令字长不等。
定长操作码:n位->2的n条指令。
扩展操作码:操作码长度可变。

扩展操作码

指令字长为16位,
指令字长为16位,另有3个4位长的地址字段A1,A2,和A3。
4位基本操作码若全部用于三地址指令,另有16条。但至少需将1111流作扩展操作码之用,即三地址指令15条。
1111 1111留作扩展操作码之用,二地址指令15条。
1111 1111 1111留作扩展操作码之用,一地址指令为15条。
零地址指令为16条。
在这里插入图片描述

操作注意事项

在设计扩展操作码指令格式时,必须注意以下两点:
1):不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同。
2):各指令的操作码一定不能重复。
通常情况下,对使用频率较高的指令,分配较短的操作码;对使用频率较低的额指令,分配较长的指令,分配较长的操作码,从而尽可能减少指令译码和分析的时间。

扩展操作码举例。

设指令字长固定16位,试设计一套指令系统满足:
在这里插入图片描述
在这里插入图片描述

操作类型

1数据传送。

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

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

2算术逻辑操作

算术:

加减乘除,增1,减1,求补,浮点运算,十进制运算。

逻辑:

与,或,非,异或,位操作,位测试,位清除,位求反。

3位移操作

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

4.转移操作

无条件转移JMP,
条件转移JZ,结果为0;JO:结果溢出;JC;结果有进位。
调用和返回CALL和RETURN
陷阱(Trap)与陷阱指令。

5.输入输出操作。

CPU寄存器与IO端口之间的数据传送(端口即IO接口中寄存器).
输入输出类(I/O):进行CPU与I/O设备之间的数据传送。

二 指令寻址

在这里插入图片描述

数据存放

在这里插入图片描述

指令寻址

在这里插入图片描述

操作数类型

在这里插入图片描述

数据寻址

一地址指令

在这里插入图片描述
在这里插入图片描述

二地址指令

在这里插入图片描述

1:立即寻址

假设指令字长=机器字长=存储字长,操作数为3
一地址指令:
在这里插入图片描述
立即寻址:形式地址A就是操作数本身,又称为立即数,一般采用补码,#代表立即寻址特征。
寻址过程:一条指令的执行:
取指令 访存1次
执行指令,访存0次
暂不考虑存结果
共访存1次。
优点:指令执行阶段不访问主存,指令执行时间最短
缺点:A的位数限制了立即数的范围
如A的位数为n,且立即数采用补码时,可表示的数据范围为-2的n-1次方----2的n-1次方-1

2;直接寻址

假设指令字长=机器字长=存储字长,操作数为3
一地址指令。
在这里插入图片描述
直接寻址:指令字中的形式地址A就是操作数的真实地址EA,即EA=A。
在这里插入图片描述
过程:一条指令的执行:
取指令 访存1次,
执行指令 访存1次
暂不考虑结果
共访存2次。

优点:简单,指令执行阶段仅访问一次主存,不需专门计算操作数的地址。
缺点:A的位数决定了该指令操作数的寻址范围。操作数的地址不易修改。

3.间接寻址

假设指令字长=存储字长,操作数为3
一地址指令
在这里插入图片描述
间接寻址:指令的地址字段给出形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元的地址,也就是操作地址的地址。即EA=(A)
在这里插入图片描述
一条指令的执行:
取指令到CPU 访存1次,
执行指令 访存2次
暂不考虑结果
共访存3次
在这里插入图片描述
存储单元前增加1个位,这个位存储为1,说明存储的为地址,存0说明存储有效地址。

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

缺点:
指令在执行阶段要多次访存(一次间址需要两次访存,多次间址需根据存储字的最高位确定几次访存).

4.寄存器寻址

假设指令字长=机器字长=存储字长,操作数3
一地址指令:
在这里插入图片描述
寄存器寻址:在指令字中直接给出操作数所在的寄存器编号,即EA=R1,其操作数在由R1所指的寄存器内。
在这里插入图片描述
过程:一条指令的执行;
取指令 访存1次
执行指令 访存0次
暂不考虑结果
共访存1次。

优点:指令在执行阶段不访问主存,只访问寄存器,指令字短且执行速度快,支持向量/矩阵运算。
确定:
寄存器价格昂贵,计算机中寄存器个数有限。

5,寄存器间接寻址

假设指令字长=存储字长=机器字长,操作数为3
一地址指令;
在这里插入图片描述
寄存器间接寻址:寄存器Ri中给出的不是一个操作数,而是操作数所在主存单元的地址,即EA=(Ai)
在这里插入图片描述
过程:一条指令的执行;
取指令 访存1次,
执行指令 访存1次。
共访存2次。

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

6.隐含寻址

隐含寻址:不是明显地给出操作数的地址,而是在指令隐含着操作数的地址。
在这里插入图片描述
优点:有利于缩短指令字长。
缺点:需要增加存储操作数或隐含地址的硬件。

总结

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值