一.指令的定义
指令(又称机器指令):是指示计算机执行某种操作的命令,是计算机运行的最小功能单位,是一组有意义的二进制代码。
指令集:一台计算机的所有指令的集合构成该机的指令系统。
注:一台计算机只能执行自己指令系统中的指令,不能执行其他系统的指令。
二.指令格式
一.指令格式-地址码
定长指令字结构:指令长度固定
变长指令字结构:指令长度不等
1.四地址指令
指令和数据混合在一起
2.三地址指令
指令和数据分别存放在一个区域
3.二地址指令
4.一地址指令
5.零地址指令
二.指令格式-操作码
定长操作码:在指令字的最高位部分分配固定的若干位(定长)表示操作码。
- 一般n位操作码字段的指令系统最大能够表示2"条指令。
- 优:定长操作码对于简化计算机硬件设计,提高指令译码和识别速度很有利。
- 缺:指令数量增加时会占用更多固定位,留给表示操作数地址的位数受限。
扩展操作码(不定长操作码):全部指令的操作码字段的位数不固定,且分散地放在指令字的不同位置上。
- 最常见的变长操作码方法是扩展操作码,使操作码的长度随地址码的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而在满足需要的前提下,有效地缩短指令字长。
- 优:在指令字长有限的前提下仍保持比较丰富的指令种类;
- 缺:增加了指令译码和芬析的难度,使控制器的设计复杂化。
三.操作类型
1.数据传送:
- LOAD作用:把存储器中的数据放到寄存器中
- STORE作用:把寄存器中的数据放到存储器中
2.算术逻辑操作:
- 算术:加、减、乘、除、增1、减1、求补、浮点运算、十进制
- 运算逻辑:与、或、非、异或、位操作、位测试、位清除、位求反
3.移位操作:
- 算术移位、逻辑移位、循环移位(带进位和不带进位)
4.转移操作:
- 无条件转移JMP
- 条件转移 JZ:结果为0;JO:结果溢出;JC:结果有进位
- 调用和返回CALL和RETURN
- 陷阱(Trap)与陷阱指令
5.输入输出操作:
- CPU寄存器与lO端口之间的数据传送(端口即IO接口中的寄存器)
四.寻址
一.数据存放
边界对齐的话,如一次访存就可以12~78的数据取出去,否则需要两次
边界对齐:起始地址是字长(按字节编址,按字节算)的整数倍。
二.指令寻址
三.数据寻址
1.数据类型
2.数据寻址
推广
3.立即寻址
4.直接寻址
5.间接寻址
6.寄存器寻址
7.寄存器间接寻址
8.隐含寻址
三.数据寻址-偏移寻址
1.基址寻址
2.变址寻址
3.相对寻址
相对寻址例子:
四.数据寻址-堆栈寻址
五.CISC和RISC