Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FillChar, but for integer/cardinal

The word has it FillChar is about the fastest way to fill a patch of memory with bytes of the same value (not zero, for that there's ZeroMemory), but is there an equivalent to fill memory with a sequence of the same (four byte) integer or cardinal value? Something like FillInt or FillLongWord?

like image 778
Stijn Sanders Avatar asked Jun 16 '26 13:06

Stijn Sanders


1 Answers

FillDWord is in some Pascal implementations (FreePascal here), don't know if it's in Delphi.

Maybe some simple assembler implementation?

procedure FillDWord( var Destination; Count: Integer; Value: DWord ); 
assembler; register;
asm
  push edi
    mov  edi, eax  // assign Destination
    mov  eax, ecx  // assign Value
    mov  ecx, edx
    rep  stosd
  pop edi
end;

... or some asm expert could give a better one...

You could also look at the implementation in FreePascal.

like image 81
Kornel Kisielewicz Avatar answered Jun 19 '26 08:06

Kornel Kisielewicz