标题:斑竹 来看下啦~~
只看楼主
eminem1234
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-5-18
结帖率:66.67%
已结贴  问题点数:20 回复次数:4 
斑竹 来看下啦~~
        invoke    lstrcpy,addr @szPath,_lpszPath
;********************************************************************
; 在路径后面加上\*.*
;********************************************************************
        @@:
        invoke    lstrlen,addr @szPath
        lea    esi,@szPath
        add    esi,eax
        xor    eax,eax
        mov    al,'\'
        .if    byte ptr [esi-1] != al
            mov    word ptr [esi],ax
        .endif
        invoke    lstrcpy,addr @szSearch,addr @szPath
        invoke    lstrcat,addr @szSearch,addr szFilter

斑竹 问下啊。。这是罗云彬那个查找程序的书。。麻烦你解释下这几句,不是太明白啊谢啦,主要是那寄存器的用的好晕~~
         lea    esi,@szPath
          add    esi,eax
          xor    eax,eax
           mov    al,'\'
          .if    byte ptr [esi-1] != al
          mov    word ptr [esi],ax
搜索更多相关主题的帖子: 斑竹 word 
2012-05-21 12:35
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
得分:0 
不懂这个,等待z版

最基础的往往是你最容易忽略的!
2012-05-21 13:05
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:20 
用寄存器是汇编的优势 不会或用不好的话不如用C语言呢

    ;********************************************************************
    ; 在路径后面加上\*.*
    ;********************************************************************
    @@:
    invoke    lstrlen,addr @szPath
    ;这个API返回长度在eax里
    lea    esi,@szPath
    add    esi,eax
    ;esi此时指向字符串末尾的0
    xor    eax,eax
    mov    al,'\'
    ;eax 前三个字节的大小放的是0 后面一个放的是'\'的ASCII码
    .if    byte ptr [esi-1] != al
           ;这里减1就是最后一个字符 最后一个字符不是\就给他加上 为啥加ax就是了呢
           ;这牵扯小尾模式的知识 欢迎百度或看汇编书
           mov    word ptr [esi],ax
    .endif

2012-05-21 14:04
eminem1234
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-5-18
得分:0 
以下是引用zklhp在2012-5-21 14:04:04的发言:

用寄存器是汇编的优势 不会或用不好的话不如用C语言呢

    ;********************************************************************
    ; 在路径后面加上\*.*
    ;********************************************************************
    @@:
    invoke    lstrlen,addr @szPath
    ;这个API返回长度在eax里
    lea    esi,@szPath
    add    esi,eax
    ;esi此时指向字符串末尾的0
    xor    eax,eax
    mov    al,'\'
    ;eax 前三个字节的大小放的是0 后面一个放的是'\'的ASCII码
    .if    byte ptr [esi-1] != al
           ;这里减1就是最后一个字符 最后一个字符不是\就给他加上 为啥加ax就是了呢
           ;这牵扯小尾模式的知识 欢迎百度或看汇编书
           mov    word ptr [esi],ax
    .endif
谢谢版主啦~~啊~~我明白啦~嘿嘿~~

还有比我新的新手嘛~~~呼呼~~学习中!!!
2012-05-21 14:40
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
结题及时 真希望大家都像你一样
2012-05-21 15:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-367813-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021159 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved