8086汇编学习笔记6-寻址方式
来源:互联网 发布:淘宝导航栏分割线代码 编辑:程序博客网 时间:2024/05/19 03:44
寻址,寻的什么址,当然是内存,寻址方式有多种,就像我回四川一样,可以坐飞机,然后坐火车,也可以直接坐火车,当然还可以坐汽车,不过我到没有试过。
1. 操作数据的地址,有四个寄存器bx,si,di和bp可以用来对内存单元的寻址
(1)直接寻址ds:[idata]
(2)寄存器间接寻址,[bx]、[si]、[di]、[bp]
(3)寄存器相对寻址[bx+idata]、[si+idata]、[di+idata]、[bp+idata]
(4)基址变址寻址[bx+si]、[bx+di]、[bp+si]、[bp+di]
(5)相对基址变址寻址[bx+si+idata]、[bx+di+idata]、[bp+si+idata]、[bp+di+idata]
注意:使用bp代替bx使用时,bp与bx不同之处在于,如果没有显示各给出段地址,则段地址默认在ss中
2. 操作数据的长度
(1) 通过寄存器隐式的指明数据操作的长度
(2) 通过byte ptr或word ptr显示指明数据操作的长度
//2015.08.05 add
再来说说寻址方式吧,结合实际的例子。
1. 直接寻址
其中idata表示一个立即数,例如:
mov ax, [0]将段地址为ds,偏移地址为0,长度为2字节的内存单元数据送入到寄存器ax中,再例如:
mov al, [0]将段地址为ds,偏移地址为0,长度为1字节的内存单元数据送入到寄存器al中,可见操作内存单元的长度和具体的操作对象相关,比如寄存器。
2. 寄存器间接寻址
上面是直接寻址,也叫做立即数寻址,而寄存器间接寻址的地址偏移不在是一个立即数了,而是在一个寄存器中,但并不是所有的寄存器都能够用作寻址的,只有bx、si、di、bp这四个寄存器。例如:
mov ax, [bx]将段地址为ds,偏移地址为bx,长度为2字节的内存单元数据送入到寄存器ax中。
3. 寄存器相对寻址
寄存器相对寻址就是将前两种寻址方式结合在了一起,例如:
mov ax, [bx+200]将段地址为ds,偏移地址为bx+200,长度为2字节的内存单元数据送入到寄存器ax中。上面那条指令也可以写成下面这些格式:
mov ax, [200+bx]mov ax, 200[bx]mov ax, [bx].200
4. 基址变址寻址
例如:
mov ax, [bx+si]将段地址为ds,偏移地址为bx+si,长度为2字节的内存单元数据送入到寄存器ax中。该指令也可以写成如下格式:
mov ax, [bx][si]
5. 相对基址变址寻址
例如:
mov ax, [bx+si+200]将段地址为ds,偏移地址为bx+si+200,长度为2字节的内存单元数据送入到寄存器ax中。该指令也可以写成下面这些格式:
mov ax, [bx+200+si]mov ax, [200+bx+si]mov ax, 200[bx][si]mov ax, [bx].200[si]mov ax, [bx][si].200
总结出来就是:[idata]、[bx]、[bx+idata]、[bx+si]、[bx+si+idata],而bp寄存器可以替代bx寄存器,只是bp默认段地址在ss中。
- 8086汇编学习笔记6-寻址方式
- 汇编--学习笔记(二)-寻址方式
- [汇编]8086寻址方式
- [汇编]8086寻址方式
- [汇编]8086寻址方式
- 汇编学习笔记--更灵活的寻址方式
- 寻址方式——汇编学习笔记(三)
- 8086汇编寻址方式教程
- Linux下汇编学习-3寻址方式
- 8086寻址方式学习
- 小结:8.4 8086汇编 寻址方式小结
- 汇编 寻址方式总结
- 汇编寻址方式总结
- 汇编 寻址方式总结
- 汇编寻址方式
- ARM汇编--寻址方式
- 汇编-寻址方式
- 汇编的寻址方式
- Flash常见问题与解答
- 8086汇编学习笔记4-指令
- 8086汇编学习笔记5-伪指令
- 常用的正则表达式(带说明)
- 最大限度的提高Domino下的运行速度(网上总结)
- 8086汇编学习笔记6-寻址方式
- 1.5、代理模式
- 8086汇编学习笔记7-标志寄存器
- 8086汇编学习笔记8-转移指令
- Linux 下Sed基本用法
- 8086汇编学习笔记9-中断
- 自我陶醉
- Android中widget的应用【安卓源码解析三】
- 8086汇编学习笔记10-端口