Handle in ASM bringen.

Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 649
Registriert: 31.12.2009 11:58

Handle in ASM bringen.

Beitrag von funkheld »

Hallo, guten Tag.
Ich habe hier ein Handle für einen Speicherbereich.

Wie kann ich dieses Handle bitte in ASM bringen bei Purebasic um den Speicher mit ASM von Purebasic mit Daten zu füllen?

--------------------------------
hSArray = GlobalAlloc(memBlockSize)
---------------------------------

Danke.
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Handle in ASM bringen.

Beitrag von mk-soft »

Richte dir dieses IDE-Werkzeug ein, um zu sehen wie das Purebasic umsetzt.
Link: viewtopic.php?p=361128#p361128

Ausserdem ist dein Aufruf von GlobalAlloc falsch

Code: Alles auswählen

Structure ArrayOfByte
  b.b[0]
EndStructure

*hMem.ArrayOfByte = GlobalAlloc_(#GMEM_FIXED, 1024)

For i = 0 To 1023
  *hMem\b[i] = Random(255)
Next

GlobalFree_(*hMem)
Part ASM Code
; *hMem.ArrayOfByte = GlobalAlloc_(#GMEM_FIXED, 1024)
PUSH qword 1024
PUSH qword 0
POP rcx
POP rdx
CALL GlobalAlloc
MOV qword [p_hMem],rax
;
; For i = 0 To 1023
MOV qword [v_i],0
JMP _ForSkipDebug1
_For1:
_ForSkipDebug1:
MOV rax,1023
CMP rax,qword [v_i]
JL _Next2
; *hMem\b = i & $FF
MOV r15,qword [v_i]
AND r15,255
MOV rax,r15
PUSH rax
MOV rbp,qword [p_hMem]
PUSH rbp
MOV rax,qword [v_i]
POP rbp
ADD rbp,rax
POP rax
MOV byte [rbp],al
; Next
_NextContinue2:
INC qword [v_i]
JNO _For1
_Next2:
;
; GlobalFree_(*hMem)
PUSH qword [p_hMem]
POP rcx
CALL GlobalFree
;
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten