笔记整理来源于王道考研
指令格式
-
又称机器指令,是指计算机执行某种操作的命令,是计算机运行的最小功能单位
-
一台计算机的所有指令的集合构成指令集
-
一台计算机只能执行自己指令系统的指令,不能执行其他系统的指令
指令格式——地址码
-
定长指令字结构:指令长度固定
-
变长指令字结构:指令长度不等
指令格式——操作码
操作码就是上面的OP
- 定长操作码:n 位–> 2^n 条指令
- 变长操作码–>扩展操作码
扩展操作码
- 不允许短的操作码是长码的前缀
- 各指令的操作码一定不能重复
在上一层指令格式上,我们在操作码的指令数上留出一种或者多种的操作数来作为下一层的指令扩展,比如在三地址指令格式上,我们留出全 1 (1111)来扩展下一层二地址指令格式,因为 4 位操作码和 8 位操作码在读取时可能会造成识别问题,所以留出1111来作为下一层的扩展,表示在读取前4 位1111时,就意味着下面紧接着读取的也是操作码,而不是地址码,也就是二指令的格式。
- 通常情况下,对使用频率较高的指令,分配较短的操作码,对使用频率较低的指令,分配较长的操作码,减少指令译码和分析时间
例题
指令的操作类型
- 数据传送
- 算术逻辑
- 移位操作(算术,逻辑,循环)
- 转移操作
- 输入输出操作
指令寻址
数据存放
- 字节存储,字存储
- 机器字长,指令字长,存储字长
边界对齐与不对齐存储
边界对齐:起始地址是字长(按字节算)的整数倍
寻址方式(两种)——由程序计数器PC给出
- 顺序寻址
- 跳跃寻址
数据寻址
操作数类型
地址 | 数字 | 字符 | 逻辑数 |
---|---|---|---|
无符号数 | 定点数,浮点数,十进制 | ASCII码 | 逻辑运算 |
寻址方式
利用不同寻址方式对形式地址进行处理,求出有效地址
立即寻址
直接寻址
间接寻址
寄存器寻址
寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果
寄存器间接寻址
隐含寻址
寻址方式 | 有效地址 | 访存次数 |
---|---|---|
隐含寻址 | 程序指定 | 0 |
立即寻址 | A即是操作数 | 0 |
直接寻址 | EA=A | 1 |
一次间接寻址 | EA=(A) | 2 |
寄存器寻址 | EA=Ri | 0 |
寄存器剪辑一次寻址 | EA=(Ri) | 1 |
偏移寻址
-
基址寻址
-
变址寻址
-
相对寻址
例题
寻址方式 | 有效地址 | 访存地址 |
---|---|---|
相对寻址 | EA=(PC)+A | 1 |
基址寻址 | EA=(BR)+A | 1 |
变址寻址 | EA=(IX)+A | 1 |
堆栈寻址
实现堆栈的硬件
- 使用寄存器叫硬堆栈
- 使用主存叫软堆栈
CISC和RISC
CISC | RISC |
---|---|
复杂指令集 | 精简指令集 |
一条指令完成一个复杂的基本功能 | 一条指令完成一个基本“动作”,多条指令组合完成一个复杂的基本功能 |
X86架构,笔记本,台式机 | ARM架构,手机,平板 |