Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1145

AW: XP Usermanagers 6.1 Open Source

  Alt 31. Jan 2020, 16:53
An dieser Prozedur scheitert es in 64 Bit zu kompilieren
Delphi-Quellcode:
function StrIComp(const Str1, Str2: PChar): Integer; assembler;
asm
        PUSH EDI
        PUSH ESI
        MOV EDI,EDX
        MOV ESI,EAX
        MOV ECX,0FFFFFFFFH
        XOR EAX,EAX
        REPNE SCASB
        NOT ECX
        MOV EDI,EDX
        XOR EDX,EDX
@@1: REPE CMPSB
        JE @@4
        MOV AL,[ESI-1]
        CMP AL,'a'
        JB @@2
        CMP AL,'z'
        JA @@2
        SUB AL,20H
@@2: MOV DL,[EDI-1]
        CMP DL,'a'
        JB @@3
        CMP DL,'z'
        JA @@3
        SUB DL,20H
@@3: SUB EAX,EDX
        JE @@1
@@4: POP ESI
        POP EDI
end;
Durch das Hinzufügen von System.SysUtils kann man zwar die 32 Bit Version kompilieren und starten. Die 64 Bit startet aber nicht. Kompilieren lässt sie sich.

Geändert von DieDolly (31. Jan 2020 um 17:02 Uhr)
  Mit Zitat antworten Zitat