指令格式-1

指令格式

指令(机器指令)
是指计算机执行某种操作的命令,是计算机运行的最小功能单位
指令集:一台计算机的所有指令的集合构成该计算机的指令系统
注:一台计算机只能够执行自己计算机上指令系统的指令

格式

指令的结构:操作码+地址码

操作码:表明用户想要做什么

地址码:对谁进行操作

地址指令

设指令地址及存储字长均为32位,操作码占8位

四地址指令

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

指令含义: ( A 1 ) (A_1) (A1)OP ( A 2 ) (A_2) (A2)–> A 3 A_3 A3, A 4 = A_4= A4=下一条要执行指令的地址

一条指令的执行(假设每个地址都是主存地址)
取指令:访存一次(假设指令字长等于存储字长)
取两个操作数:访存两次
存回结果:访存一次
共访存4次

三地址指令

op
A1
A2
A3(结果)

指令含义: ( A 1 ) (A_1) (A1)OP ( A 2 ) (A_2) (A2)–> A 3 A_3 A3

三个地址码字段均为8位,指令操作数直接寻址范围为 2 8 = 256 2^8=256 28=256;完成一条指令需要访存4次

二地址指令

op
A1目的操作数
A2源操作数

指令含义: ( A 1 ) (A_1) (A1)OP ( A 2 ) (A_2) (A2)–> A 1 A_1 A1

两个地址码字段各自占12位,指令操作数的直接寻址范围为 2 12 = 4 K 2^{12}=4K 212=4K;完成一次指令需要访存4次

一地址指令

op
A1

指令含义:

  1. OP ( A 1 ) (A_1) (A1)–> A 1 A_1 A1;完成一次指令需要访存3次
  2. (ACC)OP( A 1 A_1 A1)–>(ACC),隐含约定的目的地址,完成一次指令需要访存2次

地址码字段各占24位,指令操作数的直接寻址范围为 2 24 = 16 M 2^{24}=16M 224=16M;

零地址指令

op

指令含义:

  1. 不需要操作数,如空操作、停机、以及关中断
  2. 堆栈计算机,两个操作数依次存放在栈顶和次栈顶,结果压回栈顶

定长指令字结构:在减少地址的过程中,我们并没有改变整个指令的长度

变长指令字结构:在减少地址的过程中,我们并没有整个指令的长度

定长操作码:n位–> 2 n 2^n 2n条指令

扩展操作码:操作码长度可变
指令字长为16位:
前4位为基本操作码字段OP,另有3个4位长的地址字段 A 1 A_1 A1 A 2 A_2 A2 A 3 A_3 A3
4位基本操作码若全部用于三地址指令,则有16条。
但至少须将1111留作扩展操作码之用,即三地址指令为15条;
11111111留作扩展操作码之用,二地址指令为15条;
1111 1111 1111留作扩展操作码之用,一地址指令为15条;

设计思路:设地址长度为n,上一层留出m种状态,则下一层可以扩展出 m ∗ 2 n m*2^n m2n种状态

扩展操作码的注意事项:

  1. 不允许短码是长码的前缀,即短操作码不能与长操作码的前面的部分的代码相同
  2. 各个指令的操作码一定不能够重复
  3. 通常,对于经常使用的指令,分配较短的操作码,反之,分配较长的操作码,减少指令译码和分析的时间

定长操作码

  1. 优点:简化计算机硬件的设计,有助于提高指令译码和识别的速度
  2. 缺点:指令数量增加会占用更多的操作位,留给操作数地址的位数有限

扩展操作码

  1. 优点:在指令字长有限的前提下仍保持比较丰富的指令种类
  2. 缺点:增加了指令译码和分析的难度,使控制器的设计复杂化

指令功能的类型

  1. 数据传输
    1. LOAD 作用:把存储器中的数据放到寄存器中
    2. STORE 作用:把寄存器中的数据放到存储器中
  2. 算数逻辑操作
    1. 算数:加减乘除…
    2. 逻辑:与、或、非…
  3. 移位操作
    1. 算术移位
    2. 逻辑移位
    3. 循环移位
  4. 转移操作
    1. 无条件转移 JMP
    2. 条件转移 JZ: 结果为0;JO:结果溢出;JC:结果有进位
    3. 调用和返回CALL和RETURN
    4. 陷阱和陷阱指令
  5. 输入输出操作
    1. CPU寄存器与IO端口之间的数据传送(端口即IO接口中的寄存器)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值