Rol & Ror

git-svn-id: https://spexeah.com:8443/svn/Asuro@933 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
kieron 2020-07-10 17:13:57 +00:00
parent 8be5cccefb
commit 0b14835608

View File

@ -485,6 +485,52 @@ begin
getTSC:= (hi SHL 32) OR lo; getTSC:= (hi SHL 32) OR lo;
end; end;
function RolDWord(AValue : uint32; Dist : uint8) : uint32;
var
result : uint32;
i : uint8;
begin
result:= AValue;
asm
PUSH EAX
end;
for i:=0 to Dist-1 do begin
asm
MOV EAX, result
ROL result, 1
MOV result, EAX
end;
end;
asm
POP EAX
end;
RolDWord:= result;
end;
function RorDWord(AValue : uint32; Dist : uint8) : uint32;
var
result : uint32;
i : uint8;
begin
result:= AValue;
asm
PUSH EAX
end;
for i:=0 to Dist-1 do begin
asm
MOV EAX, result
ROR result, 1
MOV result, EAX
end;
end;
asm
POP EAX
end;
RorDWord:= result;
end;
procedure BSOD(fault : pchar; info : pchar); procedure BSOD(fault : pchar; info : pchar);
var var
trace : pchar; trace : pchar;