Seite 6 von 6
Verfasst: 16.08.2008 09:11
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".
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

Verfasst: 16.08.2008 12:08
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++.