计算机组成原理-04-计算机的组成(二)
2021-02-26 本文已影响0人
wuyou1998
机器指令的形式
一个机器指令主要由两部分组成:操作码字段和地址码字段。

操作码表示指令将要完成的操作,操作码的位数表明了机器的操作种类
地址码则直接给出了操作数或者操作数的地址
机器指令根据地址码字段中的地址数分为三地址指令、二地址指令、一地址指令和零地址指令
三地址指令

(addr1)OP(addr2) → (addr3)
一般完成的是 地址1 操作 地址2 把结果放在 地址3。
假设当前是加法操作,addr1和addr2为加数,addr3用来存放结果。
二地址指令

(addr1)OP(addr2) → (addr1)或(addr2)
一般完成的是 地址1 操作 地址2 把结果放在 地址1或者地址2。
一地址指令

(addr1)OP→ (addr1) 或者 (addr1)OP(ACC) → (addr1)
(addr1)OP→ (addr1)表示对自身的操作。
(addr1)OP(ACC) → (addr1)表示一个操作数做的一个默认行为,比如说自增。
零地址指令
在机器指令中无地址码,通常是一些空操作、停机操作、中断返回操作等。
机器指令的操作类型
数据传输指令
可以发生在寄存器之间、寄存器与存储单元之间、存储单元之间的传送
也包括一些数据读写、交换地址数据、清零置一等操作
算数逻辑操作指令
操作数之间的加减乘除操作,操作数的与或非等逻辑位运算
移位操作指令
数据左移(乘2)、数据右移(除2)
完成数据在算数逻辑单元的必要操作
控制指令
等待指令、停机指令、空操作指令、中断指令等。
机器指令的寻址方式
指令寻址
一般的指令都是顺序执行的,称为顺序寻址
,当执行到一些跳转指令时,就会进行跳跃寻址
。
数据寻址
立即寻址

指令直接获得操作数,运行无需访存储器。
直接寻址
地址段直接给出操作数在主存的地址
寻找操作数简单,无需计算数据地址
间接寻址
指令给出的地址码是操作数地址的地址,需要访问一次或多次主存来获取操作数
