这是我参与11月更文挑战的第23天,活动详情查看:2021最后一次更文挑战
考研倒计时:32天
指令格式
指令的基本格式:操作码+地址码
按长度可以分为单字长、双字长、半字长指令。定长指令字结构是所有指令长度相同,变长指令字结构是各种指令的长度不同。
根据操作数地址码数目可以分为零地址(空操作、停机、关中断),一地址(只有目的操作数的单操作数指令),二地址指令(算术和逻辑运算),三地址指令(算术逻辑运算,多个存放结果),四地址指令。
其他需要知道的是定长操作码指令格式和扩展操作码指令格式。
对定长指令字结构+可变长操作码这种类型要会计算【重点】
寻址方式
指令寻址
- 顺序寻址:通过程序计数器PC+“1”(1个指令字长具体分析)
- 跳跃寻址:转移类指令,当前指令修改PC值
数据寻址
- 隐含寻址:不访存
- 立即数寻址:操作数一般补码表示,不访存
- 直接寻址:指令字的形式地址就是真实地址,访存一次。EA=A
- 间接寻址:(套娃),EA=(A)
- 寄存器寻址:R1 访存0次;(R1) 访存1次,寄存器间接寻址
偏移寻址
- 相对寻址:(PC)+A “转移指令”
- 变址寻址:(IX)+A “循环程序”
- 基址寻址:(BR)+A “多道程序”
堆栈寻址
SP 硬堆栈和软堆栈,用于函数调用/保存当前函数信息。
CISC和RISC
注意区别即可:
- 访存指令:CISC不加限制,RISC只有load和store
- 指令字长:CISC不固定,RISC固定
- RISC运算速度更快,采用组合逻辑控制,硬布线使用较少。
【习题】
一个计算机系统采用 32 位单字长指令,地址码为 12 位,若定义了 250 条二地址指令,则还可以有()条单地址指令。
点击查看答案
地址码为12位,二地址的操作码长度为32-12-12=8位,已经定义了250条二地址指令,还有,所以可以设计出单地址指令条
某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条,二地址指令107条,每个地址字段为6位,则指令字长至少应该是( )。
点击查看答案
三地址指令有29条,所以操作码至少为5位。
对于5位,32-29=3种操作码可以给二地址,所以二地址此时数量最大达 =3*64=192>107 又因为题目说按字节编址,所以字长为5+6+6+6+1=24位
部分内容待补充完善~
如有误,请多指正!