打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
汇编语言(二)寻址方式_基址变址寻址

8086指令体系总共有7种寻址方式,详细如下:

立即数寻址

mov ax, 3069H

直接将值为3069H的立即数放到ax中。

寄存器寻址

mov AL, BH

将BH寄存器的值放入AL中。

寄存器间接寻址

使用BX寄存器进行间接寻址,BP,BI,DI寄存器也行。

mov ax, [bx]

将bx保存的值当做偏移地址,这里假设为2000H,再到DS:2000H号单元中取出值放到ax中。

tips:注意在通用寄存器组中只有bx能够进行间接寻址,AX、CX、DX不行。

寄存器相对寻址

操作数的有效地址为基址寄存器(BP,SP)和变址寄存器(DI,SI)的内容和指令中指定的偏移量之和。

mov ax, count[SI]
mov ax, [count + SI]

这里的count是一个偏移量,可以是一个常数或者一个变量。

内存寻址

直接寻址

mov ax,[2000H]

将DS:2000H号单元的内容放入ax中,如果要指定别的段的话要使用段跨越前缀。例如

mov ax, ES:[2000H]

要写上ES才能指定该段的有效地址为2000H号单元。

同时该寻址方式的操作数地址也可以由变量给出:

value db 10
mov ah, value
mov ax, word ptr value	# 将value强制转化为字类型

汇编语言中,变量名即意味着对应单元的偏移地址,因此直接使用变量名的方式也能进行内存寻址。

基址变址寻址

操作数的有效值是一个基址寄存器和一个变址寄存器的内容之和,例如

mov ax, [BX][DI]
mov ax, [BX + DI]

其可能的组合为

DS:[BX|BP][DI|SI]

相对基址变址寻址

操作数的有效地址为一个基址寄存器,一个变址寄存器和一个偏移量之和构成

mov ax, count[bx][si]
mov ax,[count + bx + si]

注意源对象的位数大小要和目标对象的位数大小相等。

寻址方式汇总如下

寻址方式指令格式
立即数寻址mov ax, 1000H
寄存器寻址mov ax, bx
寄存器间接寻址mov ax, [bx]
寄存器相对寻址mov ax, count[bx]
直接寻址mov ax, [2000H]
基址变址寻址mov ax, [bx + di]
相对基址变址寻址mov ax, count[bx + di]

段寄存器的使用规定

访问方式默认寄存器可跨越偏移地址
取指令csip
堆栈操作sssp
一般数据访问dscs,es,ss有效地址EA
BP作为基址寻址sscs,ds,esBP
串操作的源操作数dscs,es,ssSI
串操作的目的操作数ESDI
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
七种寻址方式(立即寻址、寄存器寻址)
80386ASM程序设计基础(二)
学习之道 【分享】汇编学习笔记 [论坛存档] - 看雪软件安全论坛
汇编的8种寻址方式,以及2个默认段寄存器
计算机指令系统的指令格式、寻址方式、指令种类及与C代码的对照
微机原理——3.8086指令系统
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服