Witam.
Mam teraz zagwostkę. Jak za pewne wielu z Was wie i to pewnie lepiej ode mnie, że w Assemblerze mamy na przykład rejestr EAX, który może wynosić na przykład $12345678, a wtedy rejestr AL wynosi $78. I tutaj posłużyłem się takim kodem jak poniżej aby nie wykonywać wstawki asm, a jedynie operować na zmiennych typu DWord i Byte. I tutaj pytanie, czy można to zrobić inaczej, bo docelowo kod ma być w aplikacji WinAPI i nie chce przerzucać za wiele kodu Borlanda z modułu SysUtils, no chyba że będę do tego zmuszony. Czyli chodzi o to czy jakoś inaczej można wstawić ostatni bajt do wartości DWord bez dokonywania żadnej operacji matymatycznej. Z góry dziękuję za wszelkie wskazówki. I wiem, że może głupie nazwy zmiennych, ale chodzi o zasadę działania.
procedure UpdateRegister(var BaseReg : DWord; SmallReg : Byte);
var
HexStr, NewVal : string;
begin
HexStr := IntToHex(BaseReg, 8);
NewVal := IntToHex(SmallReg, 2);
HexStr := Copy(HexStr, 1, 6) + NewVal;
BaseReg := StrToInt('$' + HexStr);
end;