EBX
darf niemals verändert werden
Entweder ihr nehmt was Anderers (EAX EDX ECX ESI EDI) oder der Wert von EBX muß gesichert und danach dann wiederhergestellt werden.
PS: EAX ist schon belegt mit X
Ich würde auch empfehlen statt X direkt EAX zu nehmen, nicht daß Delphi noch auf die Idee kommt einen Stackframe zu erstellen.