【汇编】汇编语言的七种寻址方式

汇编语言的七种寻址方式
寻址方式即指令中指明的操作数存放位置的表达方式。

(一)操作数存放位置
指令中进行操作数的数据存放在三种位置:指令、寄存器、存储器

1.1 立即数——存放在指令中
被操作数据直接表示在指令的操作数字段,及操作码之后。
eg. MOV AL,10H

1.2寄存器操作数——存放在寄存器中
数据存放在CPU的寄存器中
eg. INC CX

1.3存储器操作数——存放在存储器中
存储器表示内存和I/O端口(段地址+偏移地址),数据的偏移地址在指令中表示。
eg. MOV AX, [2500H] 其中[2500H]为存储器操作数

(二)寻址方式分类
2.1立即数寻址方式

指令 寄存器/存储器,立即数
MOV AL,80H


直接在指令码中提取操作数赋给对应位置

2.2寄存器寻址方式
操作数在指令所指示的寄存器中
直接在指令中指出寄存器名称

INC BX 将BX中的数据+1
MOV AX,CX 将CX中的数据赋给AX


2.3存储器寻址方式
操作数在指令所指示的寄存器中

说明:操作数存在存储器中,操作数的偏移地址在BX、SI、DI和BP的某个寄存器中。
以BX、SI、DI作为间接寻址寄存器时,默认操作数存放在数据段,用DS寄存器存放段地址。
以BP作为间接寻址寄存器时,默认操作数存放在堆栈段,用SS寄存器存放段地址。

2.3.1直接寻址方式
操作数在内存中,操作数的地址可通过指令中的偏移地址和段地址可定位。
即:数据段*10H加上指令中的偏移地址

MOV AL,[1024H]
假如段地址DS:2000H 则操作数地址为20000H+1024H=21064H
通过在21064寻找到操作数赋给AL即可完成


2.3.2寄存器间接寻址方式

MOV AX,[SI]
MOV [BX],AL
数据段*10H+偏移地址


2.3.3寄存器相对寻址方式
操作数有效地址为基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容加上给定的8位或八位位移量之和。

MOV CL,[BX+1064H]
数据段*10H+BX+1024H 赋值给Cl


2.3.4基址加变址寻址方式
一般把BX和BP看做基址寄存器,SI和DIi看做变址寄存器。

MOV AH,[BP][SI]
段地址*10H+基址+变址 赋值给AH


2.3.5相对加基址变址寻址方式
一般把BX和BP看做基址寄存器,SI和DIi看做变址寄存器,在这个基础上加上8位或16位的偏移量。

MOV [BX+DI+1234H],AH
AH 赋值给 数据段*10H+偏移地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值