Hi,
Wollte nochmal auf Apollonius' Vorschlag zurückkommen... bzw. seinen Vorschlag unterstreichen:
"rep stosd" wird wohl das schnellstmögliche sein!
(Und so schwer isses auch nicht. Vielleicht 3-5 Zeilen Assembler)
Edit:
Delphi-Quellcode:
// ACHTUNG: Funktioniert nur bei 4-Byte großen Datentypen!
// Für 2 Byte große Datentypen stosd durch stosw ersetzen
// Für 1 Byte große Datentypen stosd durch stosb ersetzen
procedure FillMem(Value: Integer; Dest: Pointer; Length: Integer);
asm
mov edi, edx
rep stosd
end;
// ...
var Test:
Array[0..15]
of Integer;
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
Fill(1,@Test[0],Length(Test));
// Gucken ob alles stimmt:
for i := 0
to 15
do
ShowMessage(IntToStr(Test[i]));
end;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."