Bit Twiddling Hacks

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Thorium hat geschrieben:Gelernt (ich bin immernoch ASM-Noob ^^) hab ich es mit diesem Buch. Es ist nicht perfekt aber der Preis ist super. Das Problem ist das hier wie bei allen anderen Anfänger-Büchern auch, die ich gefunden habe, sich mit uraltem 16Bit Mist aufgehalten wird, den man nun wirklich nicht mehr braucht. Da sind Beispiele für MASM drinnen, die die aktuelle MASM-Version garnichtmehr so assembliert und Fehlermeldungen auswirft. Und das schon beim ersten "Hello World". :freak:
Wie dem auch sei, man muss da etwas autodidaktisch vorgehen. Zieh dir das aus dem Buch raus was du für wichtig hälst und du wirst einiges lernen.
Haha, das Buch hab ich mir auch mal gekauft. Aber nie groß reingeschaut :) soll aber ganz gut sein - allerdings muß man aufpassen, die anderen Bücher aus der Serie (z.B. für C oder C++) sollen extrem schlecht sein.

Was ich an dem Buch so LOL finde ist daß auf dem Umschlag gar kein Assembler-Code zu sehen ist sondern C-Code :mrgreen:
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

hardfalcon hat geschrieben:Thorium: Nen Speicherbereich nach ner Bytefolge durchsuchen geht doch eigentlich ganz einfach mit ner Schleife und dann wahlweise PeekB() oder CompareMemory()... :?
Die Peek und Poke Befehle sind ja alleine schon ein Umweg. Wenn die wenigstens nur in Mov's umgewandelt werden würden.

CompareMemory vergleicht 2 Speicherbereiche miteinander, was ich aber nicht wollte. Ich wollte möglichst schnell ein paar zusammenhängende Bytes im Speicher finden. Per ASM konnte ich ganz einfach die ersten 4 Bytes in ein Register werfen, und wenn die gefunden wurden nach den nächsten 4 Bytes suchen. Ohne diese im Speicher halten zu müssen. Auch mussten sonst keine Variablen im Speicher liegen. Konnte ich alles in Register legen. Da PB den Code nicht optimiert beim Kompilieren, nutzt es logischerweise auch keine Register-Variablen, was bei Schleifen merkbar ist. Ich denke das ist ein Grund warum die For... Next Schleifen in PB im allgemeinen etwas langsammer sind als in C++.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten