![]() |
Parität [ASM]
Delphi-Quellcode:
function CalcEvenParity(dwData : Cardinal) : Integer;
// Gibt das Bit zurück um, welches eine Zahl ergänzt werden muss um auf die gerade Parität // zu kommen asm test eax, eax jpo @@1 mov eax, 0 // even Parität also muss eine 0 ergänzt werden ret @@1: mov eax, 1 // odd Parität also muss eine 1 ergänzt werden end;
Delphi-Quellcode:
function CalcOddParity(dwData : Cardinal) : Integer;
// Gibt das Bit zurück um, welches eine Zahl ergänzt werden muss um auf die ungerade Parität // zu kommen asm test eax, eax jpe @@1 mov eax, 0 // even Parität also muss eine 0 ergänzt werden ret @@1: mov eax, 1 // odd Parität also muss eine 1 ergänzt werden end; |
Re: Parität [ASM]
Für alle Delphi 8 User:
Delphi-Quellcode:
function CalcEvenParity(dwData : Cardinal) : Integer;
// Gibt das Bit zurück um, welches eine Zahl ergänzt werden muss um auf die gerade Parität // zu kommen var dwParity : Cardinal; i : Integer; begin dwParity := 0; for i := 0 to 31 do begin dwParity := dwParity xor (dwData and 1); bData := bData shr 1; end; Result := dwParity; end;
Delphi-Quellcode:
function CalcOddParity(dwData : Cardinal) : Integer;
// Gibt das Bit zurück um, welches eine Zahl ergänzt werden muss um auf die ungerade Parität // zu kommen var dwParity : Cardinal; i : Integer; begin dwParity := 0; for i := 0 to 31 do begin dwParity := dwParity xor (dwData and 1); bData := bData shr 1; end; Result := not dwParity and 1; end; |
Re: Parität [ASM]
Delphi-Quellcode:
function CheckXOr(var buf; iSize : Integer) : Integer;
// Errechnet die gerade Parität von 8 Bit-Blöcken asm mov ecx, edx // Size in Counter xor edx, edx // edx = 0 test ecx, ecx jz @@2 // Size = 0 -> Exit @@1: xor dl, [eax + ecx - 1] loop @@1 @@2: mov eax, edx end; |
Re: Parität [ASM]
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz