448 字
2 分钟
指令格式

基本格式#

指令由一个操作码加零个或多个操作数组成(也可能有隐含的操作数隐含的操作数一般是一个事先规定好的寄存器)

操作数#

  • 源操作数
  • 目标操作数
  • 同时作为源操作数与目标操作数

按指令字长分类#

  • 单字长~
  • 双字长~
  • 半字长~
  • 指令长度的不同导致取指令的访存时间不同,N字长的指令需要访存N次

按(显式)操作数个数分类#

  • 零地址指令
  • 一地址指令
  • 二地址指令
  • 三地址指令
  • 四地址指令
    • 操作码 源操作数0 源操作数1 目标操作数 下条指令地址
  • N地址指令操作数还可以由隐含的操作数提供所以实际的操作数可以大于N个

按操作码长度分类#

扩展操作码指令格式#

Pasted image 20240804181451 扩展操作码指令格式采用定长指令字结构+可变长操作码结构 采用分机的操作码结构,特定的操作码保留为下一级操作码的前缀标识

其他#

  • 已知某一定长指令集操作数固定为NopN_{op} 位,0地址, 1地址, …,n-1地址的指令条数分别为numinum_i条,那么指令位数至少是log2i=0n2iNopnumilog_2{\sum_{i=0}^{n}2^{i\cdot N_{op}}\cdot num_i}
  • 已知定长指令集的宽度,设计了0地址,1地址与2地址指令,已知0地址与1地址指令条数求2地址指令长度
  • 定长指令字与变长指令字对比