zoukankan      html  css  js  c++  java
  • Delphi反汇编内部字符串处理函数不完全列表

    Delphi反汇编内部字符串处理函数/过程不完全列表

    名称

    参数

    返回值

    作用

    等价形式 / 备注

    _PStrCat

    EAX :目标字符串

    EDX :源字符串

    EAX

    连接两个 Pascal 字符串

    s:=copy(s+s1,1,255)

    _PStrNCat

    EAX :目标字符串

    EDX :源字符串

    CL :结果字符串最大长度

    EAX

    连接两个 Pascal 字符串

    s:=copy(s+s1,1,n)

    _PStrCpy

    EAX :目标字符串

    EDX :源字符串

    EAX

    Pascal 字符串复制

    s:=s1

    _PStrNCpy

    EAX :目标字符串

    EDX :源字符串

    CL :结果字符串最大长度

    EAX

    Pascal 字符串复制

    s:=copy(s1,1,n)

    _PStrCmp

    EAX :左字符串

    EDX :右字符串

    标志位 Z

    Pascal 字符串比较

    if s=s1

    _AStrCmp

    EAX :左字符串

    EDX :右字符串

    ECX :要比较的字符个数

    标志位 Z

    Ansi 字符串比较

    if s=s1

    _LStrClr(var S: AnsiString);

    EAX :字符串

    清空字符串

    s:=''

    _LStrArrayClr{var str: AnsiString; cnt: longint};

    EAX :字符串数组指针

    EDX :数组长度

    清空字符串数组

    _LstrAsg(var dest: AnsiString; source: AnsiString)

    EAX :目标字符串

    EDX :源字符串

    复制 Ansi 字符串

    _LstrLAsg(var dest: AnsiString; source: AnsiString)

    复制 Ansi 字符串。但是和 _LstrAsg 的区别不详

    _NewAnsiString(length: Longint)

    EAX :长度

    EAX (指针)

    分配指定长度的 AnsiString

    _LStrFromPCharLen(var Dest: AnsiString; Source: PAnsiChar; Length: Integer)

    EAX :目标字符串

    EDX :源字符串

    ECX :要复制的长度

    分配并从 PChar 复制指定长度的 AnsiString

    _LStrFromPWCharLen(var Dest: AnsiString; Source: PWideChar; Length: Integer)

    EAX :目标字符串

    EDX :源字符串

    ECX :要复制的长度

    分配并从 PWideChar 复制指定长度的 AnsiString

    _LStrFromChar(var Dest: AnsiString; Source: AnsiChar)

    EAX :目标字符串

    EDX :源字符串

    单字符的分配和复制

    _LStrFromWChar(var Dest: AnsiString; Source: WideChar)

    EAX :目标字符串

    EDX :源字符串

    单字符的分配和复制

    _LStrFromPChar(var Dest: AnsiString; Source: PAnsiChar)

    Pchar 到 AnsiStr 的转换

    _LStrFromPWChar(var Dest: AnsiString; Source: PWideChar)

    PWideChar 到 AnsiStr 的转换

    _LStrToString(var Dest: ShortString; const Source: AnsiString; MaxLen: Integer)

    EAX :目标字符串

    EDX :源字符串

    ECX :要复制的长度

    AnsiString 到 Pascal 字符串的转换

    _LstrLen(str: AnsiString): Longint

    EAX :目标字符串

    EAX

    AnsiStr 的长度

    _LstrCat(var dest: AnsiString; source: AnsiString)

    EAX :目标字符串

    EDX :源字符串

    Ansi 字符串的连接

    dest+=source

    _LStrCat3{var dest:AnsiString; source1: AnsiString; source2: AnsiString}

    EAX :目标字符串

    EDX :源字符串 1

    ECX :源字符串 2

    Ansi 字符串的连接

    dest+=source

    _LstrCatN(var dest:AnsiString; argCnt: Integer; ...)

    EAX :目标字符串

    EDX :源字符串的个数 +2

    [ESP+4*i] :第 i 个源字符串的指针

    Ansi 字符串的连接

    这里的入口参数比较特别

    _LStrCmp

    EAX :左字符串

    EDX :右字符串

    标志位 Z

    Ansi 字符串比较

    if s=s1

    _LStrAddRef

    EAX :目标字符串

    增加 Ansi 字符串的引用计数

    这个可以不用管

    _LStrToPChar

    EAX

    EAX

    类型转换

    _LstrCopy(const s : AnsiString; index, count : Integer): AnsiString

    EAX :目标字符串

    EDX :起始位置

    ECX :要复制的长度

    [ESP+4]

    复制指定长度的 Ansi 子串

    _LStrDelete

    EAX :目标字符串

    EDX :起始位置

    ECX :要删除的长度

    同 Delete

    _LstrInsert(const source : AnsiString; var s : AnsiString; index : Integer)

    EAX :要插入的字符串

    EDX :目标字符串

    ECX :要插入的位置

    将 source 插入到 s 的 index 位置

    结果是 s 加长

    _LStrPos

    EAX :子串

    EDX :目标字符串

    EAX

    同 POS

    _LStrSetLength

    EAX :目标字符串

    EDX :新长度

    http://www.cnblogs.com/Acg-Check/p/4269495.html

  • 相关阅读:
    【BZOJ】【1833】【ZJOI2010】count 数字计数
    bzoj2588: Spoj 10628. Count on a tree(树上第k大)(主席树)
    NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第一轮Day2题解
    NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第二轮Day2题解
    51nod 1962 区间计数(单调栈+二分)
    51nod 1486 大大走格子(DP+组合数学)
    bzoj2276: [Poi2011]Temperature(单调队列/堆)
    5028: 小Z的加油店(线段树)
    bzoj2216: [Poi2011]Lightning Conductor(分治决策单调性优化)
    bzoj1057: [ZJOI2007]棋盘制作(悬线法)
  • 原文地址:https://www.cnblogs.com/findumars/p/4996468.html
Copyright © 2011-2022 走看看