临近期末,借着复习的机会把大二下学的《微型计算机原理与接口技术》这门课整理一下笔记。
操作数存在方式:
- 操作数包含在指令中,这种操作数称为立即数。例如:MOV AX,1234H
- 操作数存放在CPU的某个寄存器中,这种操作数称为寄存器操作数。例如:MOV DS,AX
- 操作数存放在存储器中,这种操作数称为存储器操作数(内存操作数)。例如:MOV AX,DS:[2000H]
- 操作数存放在I/O端口中,这种操作数称为I/O端口操作数。例如:IN AL,60H
1.立即寻址:这种寻址方式所提供的操作数直接放在指令中,紧跟在操作码的后面,与操作码一起放在代码段区域中。立即数可以是8/6/32位。
1234H为源操作数,是参加操作的数据本身。立即寻址方式一般只用于给内存单元、寄存器赋初值。采用小端法。
MOV AL,0C8H 如果开头是A~F,则要在字母前加一个前缀0。
2.寄存器寻址:操作数在CPU的某个寄存器中,符号指令中直接写出寄存器名称。速度最快。
MOV AX,BX 源操作数BX是寄存器操作数。
3.存储器操作数寻址:指令的操作数出现[ ],表示要寻址的数在内存中,地址在[ ]中。速度最慢,时间最长。
步骤:①看到[ ],存在内存中;②看[ ]里的偏移地址
(1)直接寻址:操作数默认为在数据段。
(2)寄存器间接寻址:操作数在内存单元。
记住:BP在堆栈段,BX/SI/DI在数据段即可。
MOV BX,1000H
+[ ],访问单元在内存中;不+[ ],访问单元在寄存器中。
(3)基址寻址:一部分在基址寄存器,另一部分为常量。
记住:BP在堆栈段,BX在数据段即可。
MOV BX,1000H
(4)变址寻址
记住:SI/DI在数据段即可。
MOV SI,1000H
(5)基址加变址寻址
MOV BX,1000H
MOV SI,2000H
总结:
习题:
个人答案:
(1) | 立即寻址 | 没有偏移地址 | 1000H |
(2) | 直接寻址 | 2000H | 56H |
(3) | 寄存器寻址 | 没有偏移地址 | 1000H |
(4) | 寄存器间接寻址 | 1000H | 12H |
(5) | 变址寻址 | 2016H | 78H |
(6) | 基址寻址 | 1016H | 43H |
(7) | 基址加变址寻址 | 3016H | A9H |
版权声明:本文为博主原创文章,未经博主允许不得转载。