bin nicht recht sicher wo es hinein gehört. Deshalb eröffne ich mal in diesem Thread.
Per VirtualPC2007 habe ich mir ein System mit MSDOS 6.22 aufgesetzt, um den TASM 5.0 (Turbo-Assembler, vllt. kennt es ja wer *fg*) von Borland laufen zu lassen.
Folgendes Problem: Der Zielcode scheint fehlerhaft übersetzt zu werden. Ein Interrupt-Aufruf (int21) wird im Zielcode zu int15. Hab es mir per Debugger angeguckt.
Per Suchmaschine werd ich hierzu nicht schlauer. Und in meiner (noch bescheidenen) Literatur zum Thema Assembler werd ich auch nicht fündig - was aber daran liegen könnte dass das Aktuellste aus 2006 stammt
Der Quellcode:
Der Zielcode (im Debugger)
Gehe ich per Einzelschritt durch das Programm, wird alles korrekt ausgeführt. Nur wird das Programm eben nicht beendet.
Der fehlerhafte int15 wird abgearbeitet - ohne sichtlichen Effekt. Dann wird der Loop nochmals (zwei mal) ausgeführt. Und danach nix mehr.... Der Debugger läuft zwar weiter und führt irgendwas aus - allerdings ohne Effekt.
Wird die Exe-Datei an der Eingabeaufforderung gestartet, so wird die Ausgabe der Strings korrekt ausgeführt. Das Programm aber nicht beendet, sondern die Schleife, wie im Debugger, zwei mal durchlaufen. Und dann passieren verschiedene Dinge: Entweder gibt VirtualPC einen Fehler (Fehlercode 315 --> nicht fündig geworden) aus, oder die VM friert ein (ein Gefühl wie echtes DOS ohne VM)
Und nun meine eigentliche Frage: Warum? Also, warum wird das Programm (für mich offensichtlich) fehlerhaft übersetzt? Gibt es da Probleme bzgl. MSDOS & TASM in einer VM?
joar
nettes Rest-Wochenende wünsch ich an dieser Stelle.
Dieser Beitrag wurde von nobido bearbeitet: 26. April 2015 - 19:31