Zum Rückwärtscode:
Kann man das denn überhaupt so schreiben???
Aber sicher doch.
Schau dir einfach mal den erzeugten Maschienencode an
Die
ASM-Befehle verstehen hierbei einige verschiedene Offsets, aber meistens nur in kleineren Bereichen und in Schritten von Zweierpotenzen
und ist auch nicht bei allen Registern gleich. (wenn was nicht geht, dann wird es der Debugger schon bemängeln)
PS: Der Delphi-InlineASM-Code muß ja auch irgendwie in ein Format gebracht werden, welches Intel, AMD und Co. verstehen. Da kann Delphi auch nicht sein eigenes Süppchen kochen, sondern muß sich an die Regeln halten. (ein
ASM-Befehl im Code wird in einen
ASM-Befehl für die CPU umgewandelt ... da wird nix zusammengeschustert)
Zitat:
Codestelle markieren (Breakpoint setzen) und dann in den CPU - Modus/Ansicht wechseln (STRG+SHIFT+C) und per F7 Stück für Stück durchsteppen!
Ollydbg. wäre natürlich noch angenehmer, aber da muss man zuerst einmal die Stelle finden, was für Anfänger nicht so einfach ist.
Wobei es in Delphi garnicht so einfach ist, einen Bootloader zu debuggen. (sowas war ja auch nie vorgesehn)
Drum ja der Tipp das erstmal als Funktion zu testen, wo man den Haltepunkt direkt im Quellcode setzen kann.
Dort könnte man sogar in Quellcode debuggen und muß nicht unbedingt in die CPU-Ansicht.
Überwachte Ausdrücke lassen sich auch auf Register setzen oder zum Anzeigen von Speicherbereichen nutzen.