Autor Thema: x86 Emulator  (Gelesen 4242 mal)

zacK

  • Beiträge: 216
    • Profil anzeigen
    • http://www.domae.ch
Gespeichert
« am: 13. September 2004, 10:47 »
HI!!

kennt jemand von euch einen emulator in dem ich schritt für schritte den code abklappern kann und das am bildschirm verfolgen kann?
Ausserdem sollten die Register immer klar ersichtlich sein damit ich überprüfen kann ob meinen rechnungen stimmen... (z.B LSN to CHS)

gr33z

JensFZ

  • Beiträge: 96
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 13. September 2004, 12:15 »
Hiho

Ich kenne da nur Bochs in der Richtung (halt im debug modus). Dort kannst du dir auch die ganzen register ausgeben lassen.

MfG JensFZ
 

zacK

  • Beiträge: 216
    • Profil anzeigen
    • http://www.domae.ch
Gespeichert
« Antwort #2 am: 13. September 2004, 13:04 »
hm.... ich finde es mit bochs ein wenig umständlich und die register muss du mit dem befehl dump_cpu aufrufen, die sind nicht klar ersichtlich so das du die änderungen direkt sehen kannst... und wenn ich bei mir step per step durch gehe. ändert sich genau nix am bildschirm (vbreak 0:0x7c00 gesetzt, dan mit c, und dann immer s oder enter)...

hm

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #3 am: 13. September 2004, 18:15 »
Also die register anzeigen lassen kann man sich mit info registers!!!
das sich bei step by step nichts auf dem bildschirm ändert liegt daran das der nicht nach jedem step erneuert wird, sondern gibt es ein VGA Update Intervall
man kann die Register auch während des betriebs ändern  und so seine routinen auf bestimmte situationen hin testen.
Ausserdem sollte man sich nicht immer auf die Bildschirmausgaben verlassen da in der Ausgaberoutine ja ein fehler sein könnte, und damitzahlen oder so falsch berechnet werden.
z.B. wenn das cout (gesetzt den fall man hat c++ kernel und coutklasse und operatorüberladung und und und^^(funzt bei mir übrigens molte bene)) irgendwo falsch ist wird müll ausgegeben und du denkst deine andre routine hat ne macke, besser vorher alles nach rechnen, sich nen beispielwert nehmen und zur not mit stift und zettel nachprüfen. Das Bildschirmausgaben manchmal fragwürdig sind sieht man an den Fehlermeldungen von Windows;)
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

StrgAltEntf

  • Beiträge: 22
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 13. September 2004, 20:34 »
Auch wenn ich jetzt haue kriege ... aber vielleicht hilft dir ja Emu8086...?
Den gibt's unter www.emu8086.com, ist Shareware und kein PC-Emulator.
Allerdings emuliert dir der NUR den Prozessor und ein paar kleinere Peripheriegeräte (Diskette? VGA im Textmodus?) und ein paar Int21-Aufrufe (bei weitem nicht alle!).
Allerdings zeigt er dir sehr schön den Code, die Register und Flags an, Veränderungen in Rot (statt Blau/Schwarz).
Er spricht fließend ASM :).

Vielleicht kannst du es ja gebrauchen, wer weiß [...]

StrgAltEntf

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #5 am: 15. September 2004, 14:40 »
Wenn du PM machst kannste Emu8086 inne Tonne kloppen, das kann dernicht.
Wie der Name schon sagt emuliert der nur 8086 Befehle, und der hatte die notwendigen Register noch nich eingebaut, aber falls man im Bootloader nen Code hat zu Erkennung von 386+ kann man den da verwenden und schauen obs geht, sonst-> Sinnloses Progg
Die Flags zeigt auch nasm an wenn man den Befehl info registers anwendet, man muss nur eben den Hexacode auseinandernehmen und analysieren.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

 

Einloggen