第四章 指令系统
4.1 指令格式
回顾:
本章总览:
4.1.1 指令的基本格式
- 操作码、地址码概念
🧧 零地址指令
🧧 一地址指令
🧧 二、三、四地址指令
- 根据地址码数目不同分类
- 根据指令长度分类
- 根据操作码的长度不同分类
- 根据操作类型分类
4.1.2 扩展操作码指令格式
注意:
例:
4.2 指令的寻址方式
4.2.1 指令寻址
回忆:
- 定长指令字结构
若主存按字节编址,PC每次+2:
- 变长指令字结构
- 顺序寻址、跳跃寻址
这里顺序寻址的1 理解为 1个指令字长
,**实际加的值会因指令长度、编址方式而不同 **
这个例子当执行到3时:
执行转移指令,将PC值修改为7:
4.2.2 数据寻址
数据寻址方式有10种:
划分出四个位用来表示是什么方式:
地址指令也可分多级:
接下来都以 一地址指令
为例:
1、直接寻址
2、间接寻址
3、寄存器寻址
4、寄存器间接寻址
5、隐含寻址
6、立即寻址
- 偏移寻址
7、基址寻址
8、变址寻址
若不使用变址寻址,下图这样一个循环中会需要很多指令语句:
使用变址寻址后:
基址&变址复合寻址:
9、相对寻址
采用相对寻址后:
- 补充内容:
10、堆栈寻址
4.3 程序的机器级代码表示
4.3.1 高级语言与机器级代码之间的对应
- x86汇编语言指令基础
- 历年真题
4.3.2 常用的x86汇编指令
- 常见的算数运算指令
进行除法操作时,被除数会被提前放到edx和eax寄存器中;
edx:eax
意思:在进行除法操作前,需要对被除数进行位扩展,因此把两个寄存器连起来用。
- 常见的逻辑运算指令
4.3.3 AT&T格式 V.S. Intel格式
考研一般用 Intel格式
4.3.4 选择语句 机器级表示
- 无条件转移指令:
- 条件转移指令
- 例子:
–
- 扩展:cmp指令