Delphi-Quellcode:
procedure ByteLoeschen(p: Pointer;
Index: Byte);
assembler;
asm
mov CL,
DL
mov EDX, 0FFFFFF00h
sal Cl, 3
//Linksverschiebung mit Anhängen von Nullen, *2*2*2
STC
//setze Carry-Flag, um kein Bit zu verlieren
rcl EDX, CL
//Rechtsverschuebung mit Anhängen des Carry-Flags, setzt Carry-Flag
and [EAX], EDX
end;
procedure ByteLoeschen2(p: Pointer;
Index: Byte);
assembler;
asm
mov Byte [EAX + EDX], 0
end;
Funktionen sind nun so verändert, dass sie EBX nicht mehr verwenden (auch wenn keine Veränderung erfolgte).
Jemand eine Idee, warum EBX den selben Wert wie EDX enthielt (2. Parameter)? (nur aus meiner Neuier herraus
)