汇编指令寻址方式

一条指令的寻址方式决定了这个操作如何利用指令中所携带的数据

去寻找真正的操作数据。这里,按最直观的理解分做4大类。

(1)立即寻址:真正的操作数就包含在指令当中。

MOV EAX,1

这条指令的写法就是立即寻址,操作数就是1,指令的含义是把1赋给EAX。

(2)寄存器寻址:操作数据在寄存器内。

MOV EAX,EBX

这条指令的写法就是寄存器寻址,操作数放在EBX内,指令的内含义是把EBX

内的数据赋给EAX。

(3)直接寻址:操作数的地址被直接写在指令内。

MOV EAX,[0x1000]

这条指令的写法就是直接寻址,操作数放在0x1000指向的内存地址内,指令的含义

是把地址为0x1000的数据赋给EAX。

(4)间接寻址:操作数的地址需要经过某种运算才能得到,这种运算可能是从

一个寄存器读取,也可能是把某几个寄存器中的数据相加,等等。

      MOV EAX,【EBX】

     含义是把EBX里的数据作为一个地址,然后从这个地址得到

数据赋予EAX。

   MOV EAX, 【EBX+4】

   含义是把EBX里的数据作为一个地址,将这个地址加4后得到新地址,从新地址获取

数据赋给EAX。

  MOV EAX, 【EBX+EDX】

  含义把EBX里的数据与EDX的数据之和作为地址,从这个

地址获取数据赋给EAX。

  MOV EAX,【EBX+ECX*4+4】

  含义把EBX里的数据与ECX*4的数据之和作为地址,将这个地址加上4后得到新地址,从

新地址获取数据赋给EAX。

  这里ECX*4并非表示CPU在做寻址操作的时候可以同时做乘法,而只是将ECX扩大了4倍,

表示这个数组元素都是32位长整数。

写在[ ] 内的最多只能是3个部分的和,你可以理解为基址、变址和常数偏移。

 



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WangLanguager

您的鼓励是对我最大的支持

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

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

打赏作者

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

抵扣说明:

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

余额充值