vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Wenn es jemanden interessiert, so macht es VBEx32.DLL .... 
Autor: unbekannt
Datum: 20.11.02 22:01

' Function 126
' VBCRC32 ***********( nicht geändert )**********
FUNCTION VBCRC32 ALIAS "VBCRC32" (sQuelle AS STRING) EXPORT AS LONG
    DIM a AS LONG, b AS BYTE,e AS BYTE
    DIM d AS STRING
    DIM nCRC AS LONG, c AS LONG, n AS LONG
 
    d = sQuelle
    n = LEN(sQuelle)
 
Loop0:
    ! Mov  a,&Hff           ;Setze acht Bits in a
    ! Mov  Ecx,8            ;Zähler initialisieren
Loop1:
    ! Mov  b,0              ;Initialisiere b mit 0
    ! Mov  e,0              ;Initialisiere e mit 0
    ! Mov  Eax, nCRC        ;nCRC in Register laden
    ! And  Eax,32768        ;32768 And
    ! Cmp  Eax,32768        ;Vergleiche Eax
    ! Jne  Weiter0          ;Überspringe nächste Zeile wenn ungleich
    ! Mov  b,1              ;Setze b auf logisch 1
Weiter0:
    ! Mov  Edx,d            ;StringPtr nach Edx
    ! Mov  Ebx,c            ;Counter nach Ebx
    ! Mov  Eax,[Edx+Ebx]    ;Wert aus Speicher nach Eax
    ! Mov  Ebx,0            ;Initialisiere Ebx
    ! Shr  a,1              ;Division um binär ^2
    ! Mov  Ebx,a            ;Wert a auf bl
    ! Inc  Ebx              ;Addiere 1
    ! And  Eax,Ebx          ;And mit Wert aus Ebx
    ! Cmp  Eax,Ebx          ;Vergleiche Eax,Ebx
    ! Jne  Weiter1          ;Überspringe nächste Zeile wenn ungleich
    ! Mov  e,1              ;Setze e auf logisch 1
Weiter1:
    ! Mov  Eax,nCRC         ;setze nCRC nach Eax
    ! AND  Eax,32767        ;32767 And
    ! Shl  Eax,1            ;Multipliziere Eax mit 2
    ! Mov  nCRC,Eax         ;speichere Ergebnis in nCRC
    ! Mov  Eax,0            ;Initialisiere Eax
    ! Mov  Al,b             ;Wert aus b nach Al
    ! Mov  Ah,e             ;Wert von e nach Ah
    ! Cmp  al,ah            ;Vergleiche b mit e
    ! Je   Weiter2          ;Springe wenn gleich XOR = true
    ! Mov  Eax,nCRC         ;setze nCRC nach Eax
    ! Xor  Eax,&H8005       ;&H8005 XOR
    ! Mov  nCRC,Eax         ;Speichere Ergebnis in nCRC
Weiter2:
    ! Dec  Ecx              ;Vermindere counter um 1
    ! cmp  Ecx,0            ;ist Counter 0?
    ! Jne  Loop1            ;nein, dann Springe zu Loop1
    ! Inc  c                ;Addiere in c c=c+1
    ! Mov  Eax,c
    ! Mov  Ebx,n
    ! Cmp  Eax,Ebx
    ! Jne  Loop0
 
    IF nCrC < 0 THEN nCrC = nCrC+&H10000
    FUNCTION = nCrC
END FUNCTION
' *****************************************************************************
' **
Der Code ist noch nicht mal optimiert - und aber wahnsinnig schnell. Wenn Einer die Optimierung durchführt hat man einen Renner
0
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
CRC1.591Methos18.11.02 14:17
Re: CRC1.303David M18.11.02 14:35
Re: CRC1.306dbayer18.11.02 14:40
Re: CRC1.380Wöllmi19.11.02 07:22
Re: CRC1.346E719.11.02 18:30
Re: CRC1.492unbekannt19.11.02 19:52
Re: CRC1.306E720.11.02 17:44
Re: CRC1.310dbayer19.11.02 20:10
Re: CRC1.326Methos20.11.02 09:53
Re: CRC1.455Wöllmi20.11.02 21:43
Wenn es jemanden interessiert, so macht es VBEx32.DLL ....1.376unbekannt20.11.02 22:01
Re: CRC1.284Methos21.11.02 07:29

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel