考研408总结【计组】---指令系统

761 阅读3分钟

这是我参与11月更文挑战的第23天,活动详情查看:2021最后一次更文挑战

考研倒计时:32天

指令格式

image.png 指令的基本格式:操作码+地址码

长度可以分为单字长、双字长、半字长指令。定长指令字结构是所有指令长度相同,变长指令字结构是各种指令的长度不同。

根据操作数地址码数目可以分为零地址(空操作、停机、关中断),一地址(只有目的操作数的单操作数指令),二地址指令(算术和逻辑运算),三地址指令(算术逻辑运算,多个存放结果),四地址指令。

其他需要知道的是定长操作码指令格式和扩展操作码指令格式

对定长指令字结构+可变长操作码这种类型要会计算【重点】

寻址方式

指令寻址

  • 顺序寻址:通过程序计数器PC+“1”(1个指令字长具体分析)
  • 跳跃寻址:转移类指令,当前指令修改PC值

数据寻址

  • 隐含寻址:不访存
  • 立即数寻址:操作数一般补码表示,不访存
  • 直接寻址:指令字的形式地址就是真实地址,访存一次。EA=A
  • 间接寻址:(套娃),EA=(A)
  • 寄存器寻址:R1 访存0次;(R1) 访存1次,寄存器间接寻址

偏移寻址

  • 相对寻址:(PC)+A “转移指令”
  • 变址寻址:(IX)+A “循环程序”
  • 基址寻址:(BR)+A “多道程序”

堆栈寻址

SP 硬堆栈和软堆栈,用于函数调用/保存当前函数信息。

CISC和RISC

image.png 注意区别即可:

  • 访存指令:CISC不加限制RISC只有load和store
  • 指令字长:CISC不固定RISC固定
  • RISC运算速度更快采用组合逻辑控制,硬布线使用较少。

【习题】

一个计算机系统采用 32 位单字长指令,地址码为 12 位,若定义了 250 条二地址指令,则还可以有()条单地址指令。

点击查看答案

地址码为12位,二地址的操作码长度为32-12-12=8位,已经定义了250条二地址指令,还有28250=62^{8}-250=6,所以可以设计出单地址指令6212=24K6*2^{12}=24K

某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条,二地址指令107条,每个地址字段为6位,则指令字长至少应该是(  )。

点击查看答案

三地址指令有29条,所以操作码至少为5位。

对于5位,32-29=3种操作码可以给二地址,所以二地址此时数量最大达 3263*2^{6} =3*64=192>107 又因为题目说按字节编址,所以字长为5+6+6+6+1=24位


部分内容待补充完善~

如有误,请多指正!