汇编语言之寻址方式

寻址方式一: [立即数]

读取内存的值
mov eax,dword ptr ds:[0x12345678]

向内存中写入数据
mov dword ptr ds:[0x12345678],eax

获取内存的地址
lea eax,dword ptr ds:[0x12345678]        //eax=0x12345678


 

寻址方式二: [reg]     reg可以是8个通用寄存器中的任意一个

读取内存的值:
mov ebx,0x12345678
mov eax,dword ptr ds:[ebx]            //从地址0x12345678读出4字节数据

向内存中写数据:
mov ebx,0x12345678
mov dword ptr ds:[edx],0x11223344     //向地址0x12345678写入数据0x11223344


获取内存的地址:
lea eax,dowrd ptr ds:[ebx]            //eax==ebx;

 

寻址方式三: [reg+立即数] 

读取内存的值:
mov ebx,0x12345678
mov eax,dword ptr ds:[ebx+4]

向内存中写入数据:
mov edx,0x12345678
mov dowrd ptr ds:[edx]

获取内存的地址:
lea eax,dowrd ptr ds:[ebx+4]      //eax==ebx+4

寻址方式四: [ reg+reg * {1, 2, 4, 8} ] 

读取内存的值:
mov eax,0x12345678
mov ecx,2
mov edx,dword ptr ds:[eax+ecx*4]

向内存中写入数据:
mov eax,0x12345678
mov ecx,2
mov dword ptr ds:[eax+ecx*4],0x11223344

获取内存的地址:
lea eax,dword ptr ds:[eax+ecx*4]

寻址方式五: [ reg+reg * {1, 2, 4, 8} +立即数] 

读取内存的值:
mov eax,0x12345678
mov ecx,2
mov edx,dword ptr ds:[eax+ecx*4+4]

向内存中写入数据:
mov eax,0x12345678
mov ecx,2
mov dword ptr ds:[eax+ecx*4+4],0x11223344

获取内存的地址:
lea eax,dword ptr ds:[eax+ecx*4+4]


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值