ts-soft hat geschrieben:Kevin hat geschrieben:Vielen dank! scheint wirklich schneller zu sein ich dachte immer das Peek/Poke genau so schnell wäre.
Peek und Poke sind doch auch nur Funktionen / Prozeduren. Hier ist pointern immer von Vorteil, zumal sich daraus,
im Gegenteil zu Deinem ASM-Gefrickel, keine Nachteile ergeben. Peek und Poke ist nur Einsteigerfreundlicher und
mehr Basic Like, aber lohnt sich auch nicht immer. Man sollte auch mal an die Wartungsfreundlichkeit des Codes
denken, schließlich ist PureBasic eine Hochsprache, sonst könnte man ja gleich ASM nutzen

Stimmt schon und ASM-Codes die ich weiterhin verwende hab ich in Macros verpackt damit es weiterhin übersichtlich aussieht. Zu Peek/Poke: ich dachte PB würde solche grundlegende/einfache befehle automatisch optimieren.
Noch eine Frage/Hinweis
bevor ich Structuren verwende wollte ich aber noch ein paar test Tests machen und da ist mir ein "Fehler" aufgefallen:
Code: Alles auswählen
Structure test
ka1.i
ka2.i
EndStructure
Global test.test
*test.Integer = @test\ka2
test\ka2+1234
*test\i+1234
normalerweise müsste "*test\i+1234" schneller sein aber daraus wird:
!mov ebp, [0x442b68]
!mov ebx, [ebp+0x0]
!add ebx, 0x4d2
!push ebx
!mov ebp, [0x442b68]
!pop dword [ebp+0x0]
wo nur
!mov ebx,
!add ebx, 0x4d2
!mov [0x442b68], ebx
nötig wäre da OffsetOf(*test\Integer) = 0 ist.
bei "test\ka1+1234" das gleiche:
!lea ebp, [0x442b54]
!mov ebx, [ebp+0x0]
!add ebx, 0x4d2
!push ebx
!pop dword [ebp+0x0]
wo nur
!mov ebx, [0x442b54]
!add ebx, 0x4d2
!mov [0x442b54], ebx
nötig ist. OffsetOf(test\ka1)=0.
hier noch "test\ka2" dort stimmt es: OffsetOf(test\ka2)=4.
!lea ebp, [0x442b54]
!mov ebx, [ebp+0x4]
!add ebx, 0x4d2
!push ebx
!pop dword [ebp+0x4]
Das ist jetzt nicht wirklich schlimm aber ich denke das wäre für Fred/Freak leicht auszumerzen. Kann ja einer mit gutem Englisch im Forum Posten...