Q: translate https://gist.githubusercontent.com/alpinistbg/f69313cdd6a7f4a735213e4a4b215c8f/raw/b73a3ea23c710e0c5474a8f7c125129a734302d9/duff_copy.c to pascal
I read it has no access to the internet so it's not following links and instead just starts lying.
Are you saying that the answer is according to my former question? Because in the latter there is no hint for what I'm asking for (duff's device). Furthermore, when asked 'Write Duff's device in Pascal' the answer is quite different.
Q: Write Duff's device in freepascal
{$MODE DELPHI}
procedure DuffDevice(var Data: array of Integer; Count : Integer);
var
i, n : Integer;
begin
n := Count div 8;
i := 0;
asm
mov ECX, n
jecxz @Exit
@Loop:
mov EAX, [Data + 4 * i]
mov EBX, [Data + 4 * (i+1)]
mov [Data + 4 * i], EBX
mov [Data + 4 * (i + 1)], EAX
mov EAX, [Data + 4 * (i + 2)]
mov EBX, [Data + 4 * (i + 3)]
mov [Data + 4 * (i + 2)], EBX
mov [Data + 4 * (i + 3)], EAX
mov EAX, [Data + 4 * (i + 4)]
mov EBX, [Data + 4 * (i + 5)]
mov [Data + 4 * (i + 4)], EBX
mov [Data + 4 * (i + 5)], EAX
mov EAX, [Data + 4 * (i + 6)]
mov EBX, [Data + 4 * (i + 7)]
mov [Data + 4 * (i + 6)], EBX
mov [Data + 4 * (i + 7)], EAX
add i, 8
loop @Loop
@Exit:
end;
end;
var
Data : array[0..7] of Integer;
begin
Data[0] := 1;
Data[1] := 2;
Data[2] := 3;
Data[3] := 4;
Data[4] := 5;
Data[5] := 6;
Data[6] := 7;
Data[7] := 8;
DuffDevice(Data,

;
end.