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 :新长度

Delphi反汇编内部字符串处理函数/过程不完全列表的更多相关文章

  1. Delphi反汇编内部字符串处理函数不完全列表

    Delphi反汇编内部字符串处理函数/过程不完全列表 名称 参数 返回值 作用 等价形式 / 备注 _PStrCat EAX :目标字符串 EDX :源字符串 EAX 连接两个 Pascal 字符串 ...

  2. Delphi中常用字符串处理函数

    .copy(str,pos,num) 从str字符串的pos处开始,截取num个字符的串返回. 假设str为,)=,)='def' .concat(str1,str2{,strn}) 把各自变量连接起 ...

  3. delphi简单单向字符串加密函数

    delphi用久了有的时候得给密码加密一下,简单点就行了,这个函数还是不错的. const XorKey:array[0..7] of Byte=($B2,$09,$AA,$55,$93,$6D,$8 ...

  4. delphi字符串操作函数一览

    首部 function SameText(const S1, S2: string): Boolean; $[SysUtils.pas 功能 返回两个字符串是否相等 说明 不区分大小写 参考 < ...

  5. Delphi 自带的字符串分割函数split

    下面介绍Delphi自带的字符串分割函数,根据你的需要来使用. 1.ExtractStrings function ExtractStrings(Separators, WhiteSpace: TSy ...

  6. delphi字符串分隔函数用法实例

    这篇文章主要介绍了delphi字符串分隔函数用法,通过自定义函数SeparateTerms2实现将字符串分割后存入字符串列表的功能,具有一定的实用价值,需要的朋友可以参考下 本文实例讲述了delphi ...

  7. NotePad++ delphi/Pascal函数过程列表插件

    从cnpack上爬下来的 函数过程列表 点击下载

  8. BCB/Delphi中常用的VCL函数说明(字符串函数)

    本文档是ccrun(老妖)根据网上资料整理而成. --------------------内存分配--------------------函数名称:AllocMem函数说明:在队中分配指定字节的内存块 ...

  9. Delphi 常用数据类型 字符串类型 数据类型等等

    字符串类型 Delphi有三种类型的字符: ●AnsiChar这是标准的1字节的ANSI字符,程序员都对它比较熟悉. ●WideChar这是2字节的Unicode字符. ●Char在目前Delphi早 ...

随机推荐

  1. python 函数默认值的小坑啊

    import datetime import time def test(day=datetime.datetime.now()): print day while True: test() time ...

  2. AFNetworking VS ASIHTTPRequest

    AFNetworking和ASIHTTPRequest,大致如下: 使用上:AFN是用上较ASI略简单,但扩展不如ASI;AFN能按普通的block写法直接用闭包的写法,但是ASI不行,这样ASI的代 ...

  3. Eclipse 安装热部署JRebel

    开发环境 sts-3.7.2.RELEASE 安装步骤 1.打开应市场 2.搜索JRebel并进行下载 3.下载完成后点击JReble Configuation进入

  4. 【BZOJ】【2940】【POI2000】条纹

    博弈论 一开始想成S-Nim了……后来发现不一样= =石子是一定得取的,但是这个铺条纹就像Crosses and Crosses一样,是可以铺到中间,左右留下空隙但是对手无处可放的…… 所以就是两道题 ...

  5. StringTokenizer用法

    import java.util.StringTokenizer; public class StringTokenizerTest { public static void main(String[ ...

  6. java基础知识回顾之java Socket学习(二)--TCP协议编程

    TCP传输(传输控制协议):TCP协议是一种面向连接的,可靠的字节流服务.当客户端和服务器端彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能进行数据的传输.它将一台主机发出的字节流无差错的 ...

  7. 改写java TreeMap制造方便查询的ip内存库

    http://www.54chen.com/java-ee/chang-java-treemap-store-ip.html

  8. lintcode: 爬楼梯

    题目: 爬楼梯 假设你正在爬楼梯,需要n步你才能到达顶部.但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 样例 比如n=3,中不同的方法 返回 3 解题: 动态规划题目,同时还是有顺序 ...

  9. lintcode:搜索二维矩阵II

    题目 搜索二维矩阵 II 写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数. 这个矩阵具有以下特性: 每行中的整数从左到右是排序的. 每一列的整数从上到下是排序的. 在每一行或每一列中没 ...

  10. lintcode:Flip Bits 将整数A转换为B

    题目: 将整数A转换为B 如果要将整数A转换为B,需要改变多少个bit位? 样例 如把31转换为14,需要改变2个bit位. ()10=()2 ()10=()2 挑战 你能想出几种方法? 解题: A- ...