Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   for Schleife in ASM (https://www.delphipraxis.net/73133-schleife-asm.html)

Muetze1 13. Jul 2006 00:41

Re: for Schleife in ASM
 
Wenn Leute deine Erklärung lesen und schauen wollen wie er springt, dann suchen sie das JNZ -$08 und das steht am Offset 0x00402567 (siehe Anhang, dein Bild verschandelt, bezugnehmend auf oberen blauen Rahmen). Wenn man nun von dieser Adresse die gesprungenen 8 Bytes abzieht, dann kommt man aber auf eine falsche Adresse, und zwar auf 0x0040255F. An der Stelle steht man in mitten einer Instruktion und der Leser versteht die Welt nicht mehr. Daher vllt. darauf hinweisen, dass der Offset des relativen Sprungs auf die Adresse 0x00402569 (siehe Anhang, bezugnehmend auf unteren blauen Kasten) addiert (durch das Vorzeichen des Sprung-Offsets von -8 verringert sich die Adresse) und man erhält die von dir beschriebene Adresse 0x00402561 und damit die richtige Position.

Nun klarer? Das mit dem Instruktion Zeiger brauchste nicht erwähnen, weise nur darauf hin, dass die Leser bitte die 8 Bytes nicht von 0x00402567 abziehen (wo der Sprungbefehl laut Screenshot steht) sondern von der Adresse 0x00402569.

/EDIT: Jetzt hast du es erneut umformuliert und es ist ok. Aber ansonsten, vllt. findest du eine klein wenig einfachere Beschreibung, wenn du den Begriff des Instruktionszeigers erst gar nicht einführst und einfach nur auf die richtige Adresse zum subtrahieren hinweist, wie du es ja grundsätzlich schon tust. Da der Begriff des Instruktionszeigers nie erklärt oder eingeführt wird, verwirrt er die Leute mehr, da sie keine Informationen für diesen neuen Begriff bekommen...

(Man merkt, dass ich mal Chefredakteur war, oder? *g* (keine Angst, nur eine Schülerzeitung))

Luckie 13. Jul 2006 00:46

Re: for Schleife in ASM
 
Jetzt aber:
Zitat:

in diesem Fall 8 Byte zurück: -$08, was Adresse $00402561 ist, ausgehend von Adresse $00402569
;)

Muetze1 13. Jul 2006 00:48

Re: for Schleife in ASM
 
:thumb: Super, kurz, knapp, verständlich.

(Falls nun noch einer nachfragt warum die andere Adresse, kannst du ihm es jederzeit erklären...)

Und Gute Nacht (ich sollte schon seit min. 2 Stunden im Bett liegen...)

Luckie 13. Jul 2006 00:50

Re: for Schleife in ASM
 
Zitat:

Zitat von Muetze1
Und Gute Nacht (ich sollte schon seit min. 2 Stunden im Bett liegen...)

Ich auch. :?

jbg 13. Jul 2006 06:23

Re: for Schleife in ASM
 
Zitat:

Das interessante aber passiert in dem markiertren Block darunter
Das Interessanteste hast du aber nicht markiert, und zwar die Zeile
Delphi-Quellcode:
add eax,$04
Denn mit dieser Zeile bewegt sich das Array vorwärts, womit die Abarbeitung der Schleife trotz der rückwärtslaufenden Zählvariable, vorwärts geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz