![]() |
konstante Arrays im Inline Assembler deklarieren
Hallo :),
Ich möchte konstante Arrays in einer Assembler-Funktion in Delphi deklarieren. So habe ich es probiert:
Delphi-Quellcode:
So etwas wie DUP gibt es in Delphi wohl nicht, sehe ich das richtig?
const
nop = $90; dup10: Array[1..10] of Byte = ($90,$90,$90,$90,$90,$90,$90,$90,$90,$90); procedure asm_build;assembler; asm DB $90 //geht DB nop //geht DB dup10 // geht nicht :( DB 10 DUP $90; //geht nicht :( end; Wie bekomme ich mein Array da rein? Ich habe noch viel längere Arrays...wenn ich alle Bytes einzeln reinschreiben würde müsste ich der Übersichtlichkeit halber für jede Funktion eine Unit machen :/ Danke schonmal im vorraus. |
Re: konstante Arrays im Inline Assembler deklarieren
Ein Array sind auch nur ganz viele Werte hintereinander. Ich meine, dass müsste (also ungetestet!) so gehen:
Delphi-Quellcode:
asm
DB $90,$90,$90,$90,$90,$90,$90,$90,$90,$90 end; |
Re: konstante Arrays im Inline Assembler deklarieren
dup wurde im integrierten Assembler nicht umgesetzt. Nutze von daher yankee's Vorschlag.
|
Re: konstante Arrays im Inline Assembler deklarieren
Delphi-Quellcode:
Das kommt soweit ich weiß auf das selbe raus und ist weniger schreibaufwändig :)
asm
DD $90909090, $90909090 DW $9090 end; |
Re: konstante Arrays im Inline Assembler deklarieren
Dankeschön, so gehts auch. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz