文章目录
- 1 概述
- 2 常见寻址方式
- 2.1 立即寻址
- 2.2 直接寻址
- 2.3 间接寻址
- 2.4 寄存器寻址
- 2.5 寄存器间接寻址
- 2.6 相对寻址
- 2.7 变址寻址
- 3 扩展
1 概述
- 计算机指令:指挥计算机工作的 指示 和 命令
- 内容:通常一条 指令 包括两方面的内容
- 操作码:说明指令的 操作功能(如:加、减、乘、除 等)
- 地址码:存放 操作数 或 操作数的地址
- 图示:

2 常见寻址方式
- 寻址方式:寻找 操作数 的方式
- 不同寻址方式的目的:扩大 寻址的范围 和 编程的灵活性
指令寻址大类 | 指令寻址方式 | 地址码中存放的是 | 举例 |
---|
| 立即寻址 | 操作数 | MOV A,#40H |
内存相关 | 直接寻址 | 操作数的地址 | MOV A,40H |
间接寻址 | 操作数的地址的地址 | JMP @A |
寄存器相关 | 寄存器寻址 | 寄存器编号 | MOV A,R0 |
寄存器间接寻址 | 寄存器编号的地址 | MOV A,@R0 |
偏移量相关 | 相对寻址 | 偏移量 | SJMP rel |
变址寻址 | 起始地址 | MOVC A,@A+PC |
2.1 立即寻址
- 特点:速度最快。指令执行时间很短,因为它不需要访问内存取数,从而节省了访问内存的时间。
- 注意:
- 操作数前面必须加前缀 #
- 立即数(或称:操作数)只能放在 源操作数位置,不能放在 目标操作数位置。主要用于给 寄存器 或 存储单元 赋初值
- 例如:MOV AX,#40H
- 将 数据 40H 复制给 通用寄存器 AX,其中 H:16 进制
- MOV:操作码的一种
- AX:通用寄存器,目标操作数
- #40H:源操作数、立即数
- 图示:

2.2 直接寻址

2.3 间接寻址

2.4 寄存器寻址

2.5 寄存器间接寻址

2.6 相对寻址

2.7 变址寻址

3 扩展
3.1 操作码
- 常见操作码指令:MOV
- 格式:MOV 目的位置, 源位置
- 目的:把 操作数 从 源位置 移动到 目的位置,源操作数的内容不变
- 举例:MOV DST,SRC(从 SRC 复制数值,覆盖 DST)
3.2 常见寄存器
- 8 位寄存器:AH、AL、BH、BL、CH、CL、DH、DL 等
- 16 位寄存器:AX、BX、CX、DX、SI、DI、SP、BP 和 段寄存器等
- 32 位寄存器:EAX、EBX、ECX、EDX、ESI、EDI、ESP 和 EBP 等