标题:关于scasb指令
取消只看楼主
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
结帖率:78.95%
已结贴  问题点数:20 回复次数:2 
关于scasb指令
我用delphi写了一段查找字符位置的内联汇编代码,如下:
程序代码:
function CharPos(src:char; str:pchar):Integer;
var
    n:Integer;
Label
    Find,NotFind;
begin
    n:=Length(str);
    asm
        cld;
        lea edi, str;
        mov al,src;
        mov ecx,n;
        repnz scasb;
        jz Find;
        mov result,-1;
        jmp NotFind;
Find:
        mov result,ecx;
NotFind:
    end;
end;
调用:
i:=CharPos('e', 'hello word');
    ShowMessage(IntToStr(i));
结果却返回-1,请问问题出在哪了?

搜索更多相关主题的帖子: scasb 指令 
2010-09-24 16:21
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
明白了,如果没有理解错的话应该是不要再取地址了,本身就是地址了。
谢谢东海大仙,哈哈。。。

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-09-24 17:45
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
回复 5楼 东海一鱼
呵呵。。。

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-09-24 17:52



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




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

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