指令系统
1问:什么是指令?
答:指令就是计算机执行某种操作的命令
2问:为什么要引入指令系统
答:可以避免我们码农跟二进制直接接触,这里不太好理解,可以理解为指令系统是个汇编雏形???
3问:什么是寻址方式
答:寻址方式是指寻找指令,或者寻找操作数的有效地址两种方式,寻址分为指令寻址和数据寻址
4问:有同学可能好奇,指令中的地址码不就是数据的有效地址吗,根据这个有效地址不就可以在内存中找到操作数了吗
答:注意,地址码存放的不一定就是有效地址,这个地址可能是寄存器的编号,可能是内存地址,可能是个偏移量等等
5问:为什么不直接设计成有效地址呢?
答:寻址方式的多样化可以让我们编程更加方便
一、指令格式
- 一条指令是由操作码、地址码组成,其中地址码可能有0~4个
- 按地址码数目分类
- 0个地址的指令
- 1个地址的指令
- 2个地址的指令
- 3个地址的指令
- 4个地址的指令
- 按指令长度分类
- 指令字长的概念(对比机器字长、存储字长)
- 一个指令字长可能由多个存储字长组成
- 机器字长跟cpu有关
- 存储字长跟主存有关
- 定长指令字结构
所有指令的长度相同 - 变长指令字结构
每个指令长度可不同
- 指令字长的概念(对比机器字长、存储字长)
- 按操作码长度分类
- 定长操作码
- 可变长操作码
- 按操作类型分类
- 数据传送类
cpu、主存之间的数据传送 - 运算类
算数逻辑操作、移位操作 - 程序控制类
可以改变程序执行流 - 输入输出类
cpu、IO设备之间的数据传送
- 数据传送类
二、指令寻址
三、数据寻址
指令系统提供不同的寻址方式,主要是提高我们编程的灵活性,扩大寻址空间,缩短指令的字长,还记得指令字长是啥意思吧?
指令={操作码,{寻址特征,地址码}}