「这是我参与2022首次更文挑战的第33天,活动详情查看:2022首次更文挑战」。
指令就是指挥机器工作的指令。
分类
访存简单来讲就是访问内存。
地址形式
零地址:不需要操作数,或操作数隐含。
一地址:只需要一个操作数,取指令,取数,写会,三次访存。 需要两个操作数,另一个由ACC隐式给出,取指令,取数,写回ACC,共两次访存。
二地址:两个操作数,结果默认,存到操作数1,四次访存。
三地址:两个操作数,结果显示给出,四次访存。
四地址:三地址的操作,第四个地址指明下一次要执行的程序的地址。0123默认下一次执行的指令地址由PC自动+1给出。
指令字长
机器指令的二进制码的总位数就叫指令。分为定长和变长,它的长度取决于操作码,操作数的长度等多种因素,不同指令长度不同。
操作类型
数据传送(通信)、算数逻辑操作、移位操作、转移操作。 移位操作:
public static void main(String[] args) {
//移位就是二进制的数往左或右移动,因为接近计算机底层,所以速度比较快
System.out.println(3 << 1);// 7
System.out.println(3 >> 1);// 1
System.out.println(10 << 1);// 20
System.out.println(10 >> 1);// 5
System.out.println(10 << 2);// 40
System.out.println(10 >> 2);// 2
}
拓展操作码
指令长度固定,操作数位数少,操作码位就多,其方法类似于赫夫曼树。
指令寻址
顺序寻址:PC+1
跳跃寻址:指令直接更改PC内容
数据寻址
指明操作数的真实物理地址,把操作数部分分为寻址特征+形式地址。 主要的寻址方法有:直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、隐含寻址、立即寻址、偏移寻址(基址寻址、变址寻址、相对寻址)、堆栈寻址。 这些寻址方法都非常重要。
CISC(复杂指令集系统),RISC(精简指令集系统)
CISC指令数目一般大于200条,字长不固定,指令执行时间,使用频度相差大,通用寄存器数量较少,很多都以微程序控制。 RISC指令数目一般小于100条,字长固定,执行时间一般都在一个时间周期内完成,使用频度都比较常用,绝大多数都以组合逻辑控制。