计算机的指令系统
最后更新于:2022-04-02 04:04:40
[TOC]
## 机器指令的形式
- 机器指令主要由两部分组成:操作码、地址码
`[[操作码][地址码字段]]`
### 操作码
- 操作码指明指令所要完成的操作
- 操作码的位数反映了机器的操作种类
假设操作码字段有8位,则最多有 256 种
### 地址码
- 地址码直接给岀操作数或者操作数的地址
- 分三地址指令、二地址指令和一地址指令
### 三地址码指令
```
[[操作码(OP)][addr1][addr2][addr3]
(addr1)OP(addr2)->(addr3)
说明:把地址1OP地址2,结果放入地址三 1OP(+)2->3
```
### 二地址指令
```
[[操作码(OP)][addr1][addr2]
(addr1)OP(addr2)->(addr1)or(addr2)
说明:把地址1OP地址2,结果放入地址三 1OP(+)2->3
```
### 一地址指令
```
[[操作码(OP)][addr1]
(addr1)OP->(addr1)
说明:自己对自己操作
(addr1)OP-(ACC)>(addr1)
说明:一个操数做位的行为
```
### 零地址指令
1. 在机器指令中无地址码
2. 空操作、停机操作、中断返回操作等
## 机器指令的操作类型
### 控制指令类型
- 寄存器之间、寄存器与存储单元、存储单元之间传送
### 数据操作类型
- 数据读写、交换地址数据、清零置一等操作
### 算数逻辑操作类型
- 操作数之间的加减乘除运算
- 操作数的与或非等逻辑位运算
### 位移操作类型
- 数据左移(乘2)、数据右移(除2)
- 完成数据在算术逻辑单元的必要操作
## 机器指令的寻址方式
### 指令寻址
1. 顺序寻址
2. 跳跃寻址
```
地址 指令
101 MO∨Ro.R1
102 LAD R1.6
103 ADD R1R2
104 AND R1 R3
105 JMP 102
如指令从101->102->103->104->105->102->103...
其中 105->102就是跳跃寻址
```
### 数据寻址
1. 立即寻址
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/cd/e0/cde0706c649e950f5db1ec7856d8516c_1144x528.png)
2. 直接寻址
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/71/20/71206fd12aba356d18bf8a1792e90470_1582x816.png)
3. 间接寻址
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2a/0a/2a0ae70cf0a722fe61b2f9a2ce27ded4_1778x852.png)
### 寻址方式总结
| 寻址方式 | 优点 |缺点 |
| --- | --- | --- |
| 立即寻址 | 速度快 | 地址码位数限制操作数表示范围 |
|直接寻址 | 寻找操作数简单 | 地址码位数限制操作数寻址范围 |
| 间接寻址 | 操作数寻址范围大 |速度较慢|
';