汇编基础学习25

文章转自 http://www.mcany.cn/article/300.htm

博主 没落的残阳

 

这节来学习一下最后一组处理字符串相关指令。那么今天这组指令是LODSB, LODSW, LODSD。这组指令大家知道就可以了,因为基本我们以后很少用到。今天这组指令是从esi指向的内存位置向al/ ax/ eax装入一个值,同时esi根据方向值增加或者减少。 我们很少把rep前缀同lods指令联用。因为装入到累加器中的每个新值会覆盖掉以前的值,相反,一般仅用lods指令来装入一个值。例如lods指令可以替代下面的两条指令。
        
        mov al, [esi]
        inc esi

        看到这里我想大家应该很明白了,lods指令其实是将esi寻址到的内存单元的数据传入到al累加器中。
        
        这组指令,我们并不是很常用。因为大家可以从它的用处就可以看出来。

        好,那么我简单给出一个例子子。

        此时我声明了个数组

        dwBuffer  dd   1
        然后执行:
        cld
        mov  esi , szBuffer
        lodsd
        
        此刻其实执行的代码就如以下指令
        mov esi, szBuffer
        mov eax, [esi]
        add esi, 4
        
        由于这节这组指令本来我不准备给大家讲解的,因为它不是很常用,前4组已经够我们在字符串上进行操作了。。 不过还是给大家讲解下吧,毕竟我们是的目的以后还是逆向,免杀等,所以多了解指令集也是很有好处的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值