repne scasb strlen的x86 32bit实现函数


msg db "a",0x00,

global inst_test_strlen     
inst_test_strlen:    
    push    ebp
    mov     ebp, esp

    sub     esp, 38h            
                               
    mov     ecx, 0xFFFFFFFF ;计数值赋初值
    mov     edi, msg  ;消息的指针基地址
    mov     eax, 0    ;匹配串结束字符 al=='\0' 
    repne scasb       ;循环开始,ecx减一,搜索edi开始的字符串,匹配al的值,没有匹配继续循环,匹配到退出循环
    mov     eax, ecx  ;结果存eax
    not     eax       ;取反码 
    lea     eax, [eax-1] ;减去'\0'的那一次计数
    leave
    retn
    

eax为字符串的长度,作为函数的返回值输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值