WIN32汇编几种寻址方式

寻址格式:
AT&T汇编:
%段寄存器:地址或偏移(%基址或偏移量寄存器,%索引寄存器,比例因子)
INTEL汇编:
段寄存器:[基址或偏移量寄存器+索引寄存器*比例因子+地址或偏移]

地址或偏移以及比例因子都必须是常量,其余两个必须是寄存器。如果省略任何一项,那么等式中将以0代替该项。注意:如果不指定比例因子,则比例因子默认为1。

在AT&T汇编中,地址或偏移常量和比例因子常量不能添加$前缀.
结果地址 = 基址或偏移量寄存器 + 索引寄存器 * 比例因子 + 地址或偏移

立即寻址:
在立即数寻址(或立即寻址)方式中,指令需要的操作数紧跟在操作码之后作为指令机器
代码的一部分,并随着处理器的取指操作从主存进入指令寄存器。这种操作数用常量形式直接表达,从指令代码中立即得到,称之为立即数( Immediate)。立即数寻址方式只用于指令的源操作数,在传送指令中常用来给寄存器和存储单元赋值。
AT&T汇编:
  mov操作数大小字符 $idata,%寄存器
mov操作数大小字符 $idata,%段寄存器:地址或偏移(%基址或偏移量寄存器,%索引寄存器,比例因子)

INTEL汇编:
mov 寄存器,idata
mov 访问方式 ptr 段寄存器:[基址或偏移量寄存器+索引寄存器*比例因子+地址或偏移],idata


直接寻址
有效地址只有位移量部分,且直接包含在指令代码中,就是存储器的直接寻址方式。直接寻址常用于存取变量。
AT&T汇编:
mov操作数大小字符 %段寄存器:地址或偏移,%寄存器
mov操作数大小字符 %寄存器,%段寄存器:地址或偏移
INTEL汇编:
    mov 寄存器,访问方式 ptr 段寄存器:[地址或偏移]
mov 访问方式 ptr 段寄存器:[地址或偏移],寄存器

寄存器间接寻址,寄存器间接寻址又被称为间接寻址.
有效地址存放在寄存器中,就是采用寄存器间接寻址存储器操作数。MASM汇编程序使用英文中括号括起寄存器表示寄存器间接寻址。IA-32处理器的8个32位通用寄存器都可以作为间接寻址的寄存器,但建议主要使用EBX、ESI、EDI,访问堆栈数据时使用EBP

AT&T汇编:
mov操作数大小字符 %段寄存器:(%基址或偏移量寄存器),%寄存器
mov操作数大小字符 %寄存器,%段寄存器:(%基址或偏移量寄存器)
INTEL汇编:
    mov 寄存器,访问方式 ptr 段寄存器:[基址或偏移量寄存器]
mov 访问方式 ptr 段寄存器:[基址或偏移量寄存器],寄存器

寄存器相对寻址,寄存器相对寻址又被称为基址寻址.
寄存器相对寻址的有效地址是寄存器内容与位移量之和。
AT&T汇编:
mov操作数大小字符 %段寄存器:地址或偏移(%基址或偏移量寄存器),%寄存器
mov操作数大小字符 %寄存器,%段寄存器:地址或偏移(%基址或偏移量寄存器)
INTEL汇编:
mov 寄存器,访问方式 ptr 段寄存器:[基址或偏移量寄存器+地址或偏移]
mov 访问方式 ptr 段寄存器:[基址或偏移量寄存器+地址或偏移],寄存器


变址寻址:
使用变址寄存器寻址操作数称为变址寻址。在变址寄存器不带比例(或者认为比例为1)的情况下,需要配合使用一个基址寄存器(称为基址变址寻址方式),还可以再包含一个位移量(称为相对基址变址寻址方式),存储器操作数的有效地址由一个基址寄存器的内容加上变址寄存器的内容或再加上位移量构成。这种寻址方式适用于二维数组等数据结构.

基址变址寻址:
AT&T汇编:
mov操作数大小字符 %段寄存器:(%基址或偏移量寄存器,%索引寄存器),寄存器
      mov操作数大小字符 寄存器,%段寄存器:(%基址或偏移量寄存器,%索引寄存器)
INTEL汇编:
mov 寄存器,访问方式 ptr 段寄存器:[基址或偏移量寄存器+索引寄存器]
mov访问方式 ptr 段寄存器:[基址或偏移量寄存器+索引寄存器] ,寄存器

相对基址变址寻址
AT&T汇编:
mov操作数大小字符 %段寄存器:地址或偏移(%基址或偏移量寄存器,%索引寄存器),寄存器
      mov操作数大小字符 寄存器,%段寄存器:地址或偏移(%基址或偏移量寄存器,%索引寄存器)
INTEL汇编:
mov 寄存器,访问方式 ptr 段寄存器:[基址或偏移量寄存器+索引寄存器+地址或偏移]
mov 访问方式 ptr 段寄存器:[基址或偏移量寄存器+索引寄存器+地址或偏移],寄存器

带比例的变址寻址:
AT&T汇编:
mov操作数大小字符 %段寄存器:(,%索引寄存器,比例因子),寄存器
      mov操作数大小字符 寄存器,%段寄存器:(,%索引寄存器,比例因子)
INTEL汇编:
mov 寄存器,访问方式 ptr 段寄存器:[索引寄存器*比例因子]
mov 访问方式 ptr 段寄存器:[索引寄存器*比例因子],寄存器

带比例的相对变址寻址:
AT&T汇编:
mov操作数大小字符 %段寄存器:地址或偏移(,%索引寄存器,比例因子),寄存器
      mov操作数大小字符 寄存器,%段寄存器:地址或偏移(,%索引寄存器,比例因子)
INTEL汇编:
mov 寄存器,访问方式 ptr 段寄存器:[索引寄存器*比例因子+地址或偏移]
mov 访问方式 ptr 段寄存器:[索引寄存器*比例因子+地址或偏移],寄存器

带比例的基址变址寻址:
AT&T汇编:
mov操作数大小字符 %段寄存器:(%基址或偏移量寄存器,%索引寄存器,比例因子),寄存器
      mov操作数大小字符 寄存器,%段寄存器:(%基址或偏移量寄存器,%索引寄存器,比例因子)
INTEL汇编:
mov 寄存器,访问方式 ptr 段寄存器:[基址或偏移量寄存器+索引寄存器*比例因子]
mov 访问方式 ptr 段寄存器:[基址或偏移量寄存器+索引寄存器*比例因子],寄存器

带比例的相对基址变址寻址:
AT&T汇编:
mov操作数大小字符 %段寄存器:地址或偏移(%基址或偏移量寄存器,%索引寄存器,比例因子),寄存器
      mov操作数大小字符 寄存器,%段寄存器:地址或偏移(%基址或偏移量寄存器,%索引寄存器,比例因子)
INTEL汇编:
mov 寄存器,访问方式 ptr 段寄存器:[基址或偏移量寄存器+索引寄存器*比例因子+地址或偏移]
mov 访问方式 ptr 段寄存器:[基址或偏移量寄存器+索引寄存器*比例因子+地址或偏移],寄存器
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漫漫人生路_SUI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值