【组成原理】指令系统

总结

【组成原理】指令系统_第1张图片

指令格式

1.指令

指令字长和机器字长没有必然的联系。

操作码 地址码

零地址指令: 不需要操作数或者堆栈问题。
一地址指令: 自操作或者ACC。
二地址指令: a = a + b。
三地址指令: c = a + b。
四地址指令: c = a + b , next。
遇到的问题:
通用寄存器的个数: 查看寄存器有几个,Rn。
字长,字,字节,位的关系:
字和字节本身没有关系,根据计算机标准来走。例如:16位机器:机器字长 = 字= 16位;

名称 英文 解释
就是机器字长
字节 Byte 1Byte = 8 bit
bit 1Byte = 8 bit

 

2.定长操作码

最高位部分分配若干定长表示操作码。
 

3.扩展操作码

每层留一条作为扩展指令。
要求: 短不能和长前面的一致;每个操作码也不能一致;高频短,低频长。
 
 

指令寻址方式

1.指令寻址

顺序(PC + 1),跳跃(PC + x,下一节点依旧由PC给出)。
 

2.数据寻址

操作 有效地址 访存次数 细节问题
隐函寻址 程序给出 0 ACC不显出地址
立即寻址 访问即操作数 0 补码存放,定长最快
直接寻址 EA = A 1 访问即地址
间接寻址 EA = A 2 访问,访问,再访问
寄存器寻址 EA = R 0 访问即内容,变地址寻址最快
寄存器间接 EA = ( R ) 1 寄存器存着地址,再访问主存
相对寻址 EA = (PC) + A 1 PC浮动变化,PC的值即是PC内的值
基质寻址 EA = (BR) + A 1 OS管理,A浮动
变址寻址 EA = (IX) + A 1 用户管理,IX浮动

补充遇到的问题:
堆栈寻址: 硬堆(寄存器),软堆(主存中画出一部分),SP可以自增,所以多为零地址指令。
PC的移动: PC执行完本句之后会自动变化(记得提前加),而变化量取决于按字/字节编址和一条指令所占单位这两个问题决定的。(区分指令字长和机器字长。)
先变址后间址: 变址后得到的那个数据随后间址得到最后的真实答案。
先间址后变址: 间址后的得到的那个地址(是地址,不是那个地址对应的真实数据)通过变址得到答案。

 

Complex & Reduced Instruction Set Computer

对比 CIRC(X86编程) RISC(ARM编程)
指令系统 复杂,大 精简,简单
指令数目 >200 < 100
指令字长 不固定 固定
访存指令 不限制 Load/Store
指令执行时间 差距大 差距小
使用频度
寄存器数量
目标代码(相对于) 困难,低效 优化,高效
控制方式 微程序 组合逻辑
流水线 一定方式 实现,一个时钟周期

你可能感兴趣的:(408笔记目录指南)