Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.064 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Parität in Assembler

  Alt 7. Nov 2010, 17:55
Wie wär es hiermit ?

Delphi-Quellcode:
FUNCTION AddParity(value:byte):byte;
asm
      test al,al // Setzt u.a. das Parity-Flag
      lahf // Flags in AH (Bit 2 = Parity Flag)
      shr ah,2 // Parity-Flag in Carry-Flag schieben
      rcl al,1 // AL um 1 Bit nach oben und Carry-Flag in Bit 0
end;
Achtung :
Das Parity-Flag ist dann = 1, wenn die Anzahl der 1er-Bits gerade ist.

Wenn 32-Bit Werte benutzt werden sollen, wird es etwas länger
Delphi-Quellcode:
FUNCTION AddParity(value:integer):integer;
asm
      mov edx,eax
      test eax,eax
      lahf
      shr ah,2
      rcl edx,1
      mov eax,edx
end;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat