Tags
Forum
Artikler
Brugere
Stil spørgsmål
1
online
Login
Husk mig
Assembler i Delphi dll
Tags:
delphi
Bruger #11582
@ 27.03.07 15:19
5
Jeg har lavet en plug-in i en dll, hvor der anvendes assembler. Desværre har jeg konstateret at applicationen crasher når jeg tilgår memory, der er i en klasse. Her et simpelt eksempel (skippet for alt ligegyldigt):
procedure TForm1.Button1Click(Sender: TObject);
var
x : array[0..3] of single;
begin
asm
MOVAPS XMM3, x
end;
end;
Er det en applikation (exe) er der intet problem - kun i en dll. Hvis "x" er en variabel defineret uden for klasse virker det også i en dll. Dette er dog ingen løsning, da variable der ikke er i klasse er shared mellem flere instanser af den samme plug-in.
Nogle ideer til en måde at løse dette på?
3
svar postet i denne tråd vises herunder
1
indlæg har modtaget i alt
1
karma
Sorter efter stemmer
Sorter efter dato
1
Bruger #782
@ 28.03.07 11:31
291
jeg er egentlig ikke helt klar over det. Du kan kun flytte aligned data mellem de interne sse registre. Jeg er ikke helt klar over hvorfor et array af singles ikke er alignet
0
Bruger #782
@ 27.03.07 19:34
291
Du skal benytte MOVUPS for at flytte til et xmm register. MOVAPS kan kun bruges til at flytte data der er pakket, og det burde fejle i din exefil også
0
Bruger #11582
@ 27.03.07 23:02
5
Jamen, det var jo det - virker!
Hvornår er data egentligt aligned og unaligned?
Takker!
Torben
Karma barometer (30 dage)
Modtaget
Givet
X
Favorit hos
Forum tråde
Artikler
Tilføj til dine favorit tags
Fjern fra dine favorit tags