`

Delphi中IntToStr函数的汇编代码

阅读更多

 

 

摘自:Delphi的SysUtils单元

 

 

 

function IntToStr(Value: Integer): string;
//  FmtStr(Result, '%d', [Value]);
asm
        PUSH    ESI
        MOV     ESI, ESP
        SUB     ESP, 16
        XOR     ECX, ECX       // base: 0 for signed decimal
        PUSH    EDX            // result ptr
        XOR     EDX, EDX       // zero filled field width: 0 for no leading zeros
        CALL    CvtInt          //--函数在下图
        MOV     EDX, ESI
        POP     EAX            // result ptr
        CALL    System.@LStrFromPCharLen
        ADD     ESP, 16
        POP     ESI
end;

 

 

 

 


procedure CvtInt;
{ IN:
    EAX:  The integer value to be converted to text
    ESI:  Ptr to the right-hand side of the output buffer:  LEA ESI, StrBuf[16]
    ECX:  Base for conversion: 0 for signed decimal, 10 or 16 for unsigned
    EDX:  Precision: zero padded minimum field width
  OUT:
    ESI:  Ptr to start of converted text (not start of buffer)
    ECX:  Length of converted text
}
asm
        OR      CL,CL
        JNZ     @CvtLoop
@C1:    OR      EAX,EAX
        JNS     @C2
        NEG     EAX
        CALL    @C2
        MOV     AL,'-'
        INC     ECX
        DEC     ESI
        MOV     [ESI],AL
        RET
@C2:    MOV     ECX,10

@CvtLoop:
        PUSH    EDX
        PUSH    ESI
@D1:    XOR     EDX,EDX
        DIV     ECX
        DEC     ESI
        ADD     DL,'0'
        CMP     DL,'0'+10
        JB      @D2
        ADD     DL,('A'-'0')-10
@D2:    MOV     [ESI],DL
        OR      EAX,EAX
        JNE     @D1
        POP     ECX
        POP     EDX
        SUB     ECX,ESI
        SUB     EDX,ECX
        JBE     @D5
        ADD     ECX,EDX
        MOV     AL,'0'
        SUB     ESI,EDX
        JMP     @z
@zloop: MOV     [ESI+EDX],AL
@z:     DEC     EDX
        JNZ     @zloop
        MOV     [ESI],AL
@D5:
end;

分享到:
评论

相关推荐

    Delphi7.0常用函数速查手册.docx

    在 Delphi 7.0 中,函数是由一句或多句代码组成,能够实现某个特定的功能。使用函数可以使代码更加易读、易懂,加快编程速度及减少重复代码。 Delphi 7.0 中的函数可以分为六大类:数据类型转换函数、字符串、数组...

    Delphi7常用函数速查手册

    《Delphi7常用函数速查手册》是一本针对Delphi编程者的实用工具书,它包含了大量Delphi中常用的函数,并且详细解释了这些函数的参数和返回值,旨在帮助开发者快速查找和理解函数的用法。书中特别指出,对于那些不在...

    Delphi IntToStr返回指定字符串的起始位置.rar

    在Delphi中的实现方法很简单,使用现有的内置函数就可以,在本示例中我们使用IntToStr就可以轻松获取字符串中指定字符出现的位置,本判断中包括了英文和中文的判断,两种类型都可以使用IntToStr来实现,参考如下代码...

    delphi函数参考大全

    在本手册中,我们将为大家介绍 Delphi 函数库中的各种函数,包括数据类型转换函数、字符串、数组操作函数、文件、磁盘操作函数、内存、指针操作函数、数学运算函数、日期函数等。通过学习这些函数,大家可以更好地...

    delphi7常用函数

    以上列举的函数涵盖了 Delphi 7 中常用的字符串操作和数据类型转换功能。这些函数不仅能够提高代码的可读性,还能有效避免冗余代码,提升开发效率。在实际应用中,根据具体需求灵活运用这些函数,可以帮助开发者更好...

    Delphi自定义函数示例程序

    在Delphi中,自定义函数允许开发者根据项目需求定制功能,提高代码的可读性、可维护性和模块化程度。 1. **声明自定义函数**:在Delphi中,自定义函数的声明通常在单元(unit)文件的interface部分进行。声明包括...

    delphi常用函数速查手册

    在Delphi中,调用函数时,如果函数未包含在默认的`uses`列表中,需要手动添加对应的单元,例如`MidStr`函数属于`StrUtils`单元,需将其加入`uses`列表。 掌握这些基本的函数和概念对于Delphi编程至关重要,它们可以...

    Delphi函数参考大全

    通过阅读和实践《Delphi函数参考大全》,开发者不仅可以掌握Delphi的基本用法,还能深入了解其高级特性,提升编写高效、稳定、易维护的代码的能力。对于想要在Delphi开发领域深耕的人来说,这是一份不可或缺的参考...

    Delphi常用函数手册

    掌握这些函数对于编写 Delphi 程序至关重要,因为它们可以极大地提高代码的效率和可读性。在使用时,注意检查函数所需的单元是否已经包含在 `uses` 段中,如果未包含,则需要手动添加。通过熟练运用这些函数,开发者...

    Delphi函数指针

    在 Delphi 中,函数指针的声明非常简单,只需要指定函数的参数列表和返回值类型。例如,以下代码声明了一个函数指针类型,带有一个整型参数: ```pascal type IntProc = procedure (var Num: Integer); ``` 这种...

    Delphi常用API函数

    以上只是Delphi中API函数的一部分介绍。这些函数是开发Windows应用程序时经常使用的工具,能够帮助开发者实现复杂的用户界面操作和窗口管理。掌握这些函数的使用方法对于Delphi开发者来说至关重要。

    Delphi 将函数作为参数进行调用.rar

    Delphi 将函数作为参数进行调用,在本例中,将完成函数参数的性质转变,相加或相减,运行出不同的结果,在制作计算器的时候,尤其有用,具体代码:  procedure TForm1.RunProc(ParaA, ParaB: Integer; FunType: ...

    Delphi字符串函数大全

    ### Delphi字符串函数大全:深度解析与应用实例 在Delphi编程中,字符串处理是极为常见且重要的操作。本文将详细介绍一系列Delphi内置的字符串处理函数,这些函数来源于`StrUtils`单元,提供了丰富的功能来简化字符...

    Delphi7.0常用函数速查手册

    在 Delphi 7.0 中,提供了多种用于数据类型转换的函数,这些函数能够帮助开发者轻松地在不同的数据类型之间进行转换。 - **FloatToStr**: 该函数用于将浮点数转换为字符串。例如: ```pascal Edit1.Text := ...

    delphi函数大全

    Delphi中的基本函数涵盖了数学运算、字符串处理、日期和时间操作等方面。例如,`Abs()`函数用于返回绝对值,`IntToStr()`用于将整数转换为字符串,`Now()`和`DateTimeTo_TIMESTAMP()`则分别获取当前日期和时间以及...

    Delphi 时间 日期 函数.txt

    本文将详细介绍Delphi中几个常用的时间与日期函数,并给出示例代码,帮助开发者更好地理解和使用这些函数。 #### 二、关键函数详解 ##### 1. **`DateOf(const AValue: TDateTime): TDateTime;`** - **功能**:此...

    delphi6函数大全

    在《Delphi 6函数大全》的CHM文件中,你可以找到这些功能的详细说明、示例代码和使用方法。这份资料对于深入理解和应用Delphi的函数库非常有帮助,无论是初学者还是经验丰富的开发者,都能从中受益。通过学习和实践...

Global site tag (gtag.js) - Google Analytics