32bit register wie eax benutzen
-
Ich habe mit meinem assembler zum ersten mal ein 32bit register naemlich das eax eingesetzt. Obwohl es in der Documentation beschrieben ist, gibt es eine Fehlermeldung.
Muss ich vielleicht irgendwie einen 32bit- modus anschalten?
Habe den Tasm V1.01 auf einer CD mit sehr spaerlicher Dokumentation.
Vielleicht gibt es ja irgendwo im Internet eine ausfuehrliche Beschreibung zu diesem Thema.
-
Hi.
Es waere durchaus hilfreich, wenn du die Fehlermeldung+entsprechende Quellcodezeile hier posten wuerdest.
Versuche mal (je nach verwendetem Syntaxmodel - MASM/IDEAL) ganz am Anfang deines Quelltexts .p386 oder P386 einzufuegen.
Ich koennte mir auch vorstellen, dass TASM 1.01 noch gar keine 32Bit-Register kennt/nur 286-Code erzeugen kann. Weiss jetzt aber nicht, wann dieser Assembler veroeffentlicht wurde.
Ansonsten -> google.
-
Warum programmierst Du nicht unter Windows in Assembler? Warum DOS?
Es gibt zahlreiche Freeware-Assembler (Stichwort: IA-32 Assembler) fuer Windows (als Console- oder GUI-Applikation).
Damit kannst Du nicht nur alle Befehle des Prozessors benutzen (auch die neueren MMX, SSE und SSE2 Befehle der Pentium I, II, III und 4 Generation), sondern auch Code entwickeln, den Du z.B. auch in Windows-Anwendungen verwenden kannst.
Reinen 8086 Code schreibt heutzutage so gut wie niemand mehr. MS-DOS und Windows 3.1 sind schon seit Jahren so gut wie ausgestorben.
Selbst wenn es nur um das grundlegende Verstaendnis von Mikroprozessoren geht, ist der 8086 eine olle Kamelle.
Warum nicht gleich fuer den 4004 Code schreiben?
-
@Power Off:
Bitte nicht schon wieder eine Diskussion wie "Warum programmierst du noch Assembler?" bzw. "Warum tust du das unter DOS?" etc..
Dadurch wurden hier schon einige Threads zerstoert. Nimm es einfach als gegeben hin, was er da tut und vertraue darauf, dass hier auch noch andere User ein Fuenkchen Verstand besitzen.
Es laesst sich darueber streiten, ob und in wie fern sich die Programmierung unter DOS zum Assemblereinstieg eignet, oder ob nun der Einstieg mit Windows oder Linux besser ist. => Das Betriebssystem spielt im Grunde genommen keine Rolle.
Und da in jedem PC auch heute noch eine x86-kompatible CPU steckt, muss wohl ueber deine sonstigen Aeusserungen gar nicht weiter diskutiert werden.Alle weiteren OT-Beitraege in dieser Richtung werden geloescht.
-
Ja, Junge, hast ja recht. Sorry!
(Wollte ihm ja eigentlich bloss einen Tipp geben, wie er besser an seinen Prozessor drankommt, vorausgesetzt natuerlich, er will es das ueberhaupt.)
Zurueck zum Topic:
Hier noch ein Tipp, wenn ".386" am Anfang der Datei nix fruchtet, dann probiers mal mit:
db 066h mov ax,[addr]
Die Anweisung "db 066h" (operand size prefix) veraendert die Datenbreite des nachfolgenden Befehls. D.h. "mov ax,[addr]" wird zu "mov eax,[addr]".
Hab auch mal TASM benutzt, ist aber schon ewig her!