指令系统(一)

  • 一、指令系统的概念
  • 二、指令系统的发展
  • 三、指令格式
  • 1.指令的构成
  • 2.操作码
  • 3.扩展操作码技术
  • 4.地址码
  • 5.CPU如何区分指令和数据?
  • 6.指令长度与字长关系
  • 7.小试牛刀
  • 总结



一、指令系统的概念

◆ 指令: 指示计算机执行某些操作的命令。

◆ 指令系统(指令集): 一台计算机的所有指令的集合构成指令系统。是机器硬件设计的依据,软件设计的基础。

◆ 指令系统是计算机的主要属性,位于硬件和软件的交界面上。

nios 指令集 指令集系统_操作码


nios 指令集 指令集系统_指令格式_02

二、指令系统的发展

nios 指令集 指令集系统_软件工程_03


nios 指令集 指令集系统_操作码_04

三、指令格式

指令格式与机器的字长、存储器的容量以及指令的功能都有很大的关系。

1.指令的构成

➢ 操作码:指明要完成的操作,位数取决于指令系统中指令的条数。

• 长度固定,便于硬件设计、译码时间短。

• 长度变化,可以有效压缩操作码平均长度,在字长较端的微型计算机中常见。

➢ 地址码(这里的地址可以是主存地址,也可以是寄存器地址)

• 操作数的地址

• 操作结果的存储地址

• 下一条指令的地址

nios 指令集 指令集系统_nios 指令集_05

2.操作码

nios 指令集 指令集系统_指令格式_06


nios 指令集 指令集系统_指令格式_07

3.扩展操作码技术

使用频度高的指令应分配短的操作码;使用频度低的指令应分配较长的操作码。

注意:位数少的操作码不能是位数多的操作码的前缀,例如下图,4位操作码时最多到1110,而紧接着的8位操作码的前4位要从1111开始算。否则容易导致指令混乱。

nios 指令集 指令集系统_指令系统_08


nios 指令集 指令集系统_nios 指令集_09


nios 指令集 指令集系统_软件工程_10

4.地址码

nios 指令集 指令集系统_指令系统_11


当指令字长固定且操作码固定时,讨论不同操作数地址个数情况下的访存次数、寻址范围以及相关的改进。

nios 指令集 指令集系统_软件工程_12


nios 指令集 指令集系统_指令系统_13

nios 指令集 指令集系统_指令格式_14

5.CPU如何区分指令和数据?

➢ 指令的地址是由程序计数器(PC)规定的,数据的地址是由指令规定的。

当取出指令时,程序计数器(PC)也会相应的变化。

nios 指令集 指令集系统_指令格式_15

6.指令长度与字长关系

nios 指令集 指令集系统_nios 指令集_16


nios 指令集 指令集系统_指令系统_17

7.小试牛刀

nios 指令集 指令集系统_指令系统_18


解析:由一个计算机系统采用32位单字长指令,地址码为12位可知,系统指令只可能有三种情况,第一种,操作码(8位)+2×地址码(12位);第二种,操作码(8+12位)+地址码(12位);第三种,操作码(32位)。题目说定义了250条二地址指令,则意味着是第一种情况,一地址指令是第二种情况,则nios 指令集 指令集系统_指令格式_19-250=6种,6×nios 指令集 指令集系统_指令格式_20=24×nios 指令集 指令集系统_nios 指令集_21即有24K条单地址指令。


总结

nios 指令集 指令集系统_操作码_22