汇编结构体数组寻址

1、左移
2、加一定倍值
3、再左移,得到数组下标形成偏移
4、取首地址
5、首地址 + 数组下标形成偏移 + 结构体内部偏移得到欲存取的地址
routine
shl ...
add ...
shl ...
mov offset xxxxx

call atoi函数取得一个整数,将这个整数按照68字节一个结构体进行寻址以16 bit字类型写入对应结构体的第四个字节处
写入
.text:0802A6E9      call    _atoi                      
.text:0802A6EE      add     esp, 4                     
.text:0802A6F1      mov     [ebp+tmp], eax              ;保存得到的整数(返回值)
.text:0802A6F7      mov     eax, [ebp+index]            ;[ebp+index]保存欲寻址第index个结构体
.text:0802A6FA      mov     [ebp+struct_offset], eax    ;[ebp+index] = [ebp+tmp] = eax = index(第index个item)
.text:0802A700      mov     ebx, [ebp+struct_offset]            
.text:0802A706      mov     ecx, ebx                   
.text:0802A708      shl     ecx, 4                      ;ecx = 16 * [ebp+index] 
.text:0802A70B      add     ec

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值