🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[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://img.kancloud.cn/cd/e0/cde0706c649e950f5db1ec7856d8516c_1144x528.png) 2. 直接寻址 ![](https://img.kancloud.cn/71/20/71206fd12aba356d18bf8a1792e90470_1582x816.png) 3. 间接寻址 ![](https://img.kancloud.cn/2a/0a/2a0ae70cf0a722fe61b2f9a2ce27ded4_1778x852.png) ### 寻址方式总结 | 寻址方式 | 优点 |缺点 | | --- | --- | --- | | 立即寻址 | 速度快 | 地址码位数限制操作数表示范围 | |直接寻址 | 寻找操作数简单 | 地址码位数限制操作数寻址范围 | | 间接寻址 | 操作数寻址范围大 |速度较慢|