Turbo Assembler

Turbo Assembler

Der Turbo Assembler (TASM) ist ein Assembler für x86er Prozessoren auf dem Betriebssystem MS-DOS. Er wurde 1989 von der Firma Borland als Bestandteil von Turbo C 2.0 vorgestellt, war aber auch als separates Paket zusammen mit dem Turbo Linker erhältlich. Zur Unterstützung des Programmierers war zuerst als separates Produkt und später im Paket mit dem TASM der Turbo Debugger von Borland erhältlich. Die letzte veröffentlichte Version 5 unterstützte auch Windows 95 und NT und Prozessoren bis zum Pentium.

Der Microsoft Macro Assembler war zum Erscheinungszeitpunkt des Turbo Assemblers der vorherrschende Assembler für MS-DOS. Der TASM und der MASM deckten danach zusammen den Bedarf für Assembler für IBM-PCs und IBM-PC-ähnliche Systeme fast alleine. [1] Der TASM verspricht Unzulänglichkeiten des MASM zu beheben, eine bessere Performance, und verwirklicht darüber hinaus auch eine flexiblere und erweiterte Funktionalität z. B. in der Verwendung von Prozeduren, Symbolen, und einem mächtigereren Befehlsvorrat. Um Assemblerprogramme für den MASM möglichst unverändert übersetzen zu können, verfügt der TASM über verschiedene Modi, die einen unterschiedlichen Grad der Kompatibilität zum MASM einstellen. Er stellt im Package neben den assemblerüblichen Kernbestandteilen (Assembler und Linker) auch diverse Hilfs- und Zusatzprogramme bereit.

Heute wird der TASM mangels Nachfrage nicht mehr weiterentwickelt. [2]

Inhaltsverzeichnis

Bestandteile des Verkaufspakets

Der Turbo-Assembler war von Borland anfänglich nicht als eigenständiges Produkt konzipiert. Er war eher zur internen und externe Unterstützung/Bewerbung für die Inline-Programmierung ihrer damals erfolgreichen Produkte wie Turbo C oder Turbo Pascal angedacht.

Der TASM wurde nicht als eine Programmdatei, sondern in vielen unabhängigen, aber aufeinander abgestimmten Modulen ausgeliefert. Ein eigner Texteditor ist wie bei allen Assemblern überflüssig und nicht vorhanden. Er enthält damit folgende Komponenten:

Im Kernbereich das unverzichtbare Paar aus Assemblierer (TASM.EXE) und Linker (TLINK.EXE). Daneben fünf weitere Hilfsprogramme:

  • MAKE: Eine Programmverwaltung zum automatisierten Assemblieren und Linken von Programmen.
  • TLIB: Eine Programm zur einfacheren Verwaltung und Zusammenführung von einzelnen Objektdateien (.OBJ).
  • GREP: Ein Unix/Linux-identisches Programm zur Suche nach Textstrings in Dateien.
  • OBJXREF: Ein Tool zur Erzeugunge von Cross-Rererenzen für Objektdateien.
  • TCREF: Selbiges für Quelldateien.

Modi

Die verschiedenen Modi des TASM sind der Anpassung an und der Verbesserung des MASM geschuldet. Sie garantieren dem Programmierer ein Arbeiten in gewohnten Strukturen, und eine nahezu vollkommene Kompatibilität/Assemblierung von MASM-Quellcode. Zwischen den verschiedenen Modi kann innerhalb des Programms beliebig oft gewechselt werden.

MASM-Modus

In diesem Modus verhält sich TASM sehr ähnlich zum MASM, ohne jedoch offensichtliche Fehler des MASM zu emulieren. Dies ist die Standardeinstellung. Dabei sind im Modus MASM (die Bezeichnung ist hier etwas irreführend) die meisten Möglichkeiten von MASM 5.1 schon verwirklicht.

MASM 5.1

Die Anweisung MASM 5.1 ermöglicht die im Detail etwas anderen Möglichkeiten der Version 5.1 des MASM fast vollständig. Folgende Fähigkeiten sind nur mit der expliziten Anweisung MASM 5.1 verfügbar:

  • Die Anweisungen SUBSTR, CATSTR, SIZESTR, und INSTR.
  • Die Möglichkeit der Zeilenfortsetzung mit einem Backslash.
  • Eine alternative Syntax für die Anweisung LOCAL.

Allerdings sind folgende Möglichkeiten nur bei gleichzeitiger Aktivierung von MASM 5.1 und QUIRKS-Modus verfügbar.

  • Lokale mit @@ definierte Labels auf die mit @F und @B zugegriffen werden kann.
  • Die Redifinition von Variablen in PROC-Blöcken (dies betriffte auch Unterschiede in der Zusammenarbeit mit der Sprache C in Bezug auf PROC-Bezeichnungen)

Quirks-Modus

In diesem Modus wird der MASM vollständig auch mit dessen bekanntem Fehlverhalten nachgebildet. Einige Eigenschaften des MASM können unter Umständen so problematisch sein, dass sie selbst im MASM und MASM 5.1-Modus nicht implementiert wurden. Um aber Programmierern bei Bedarf die Weiterverwendung dieser "Eigenarten" zu gestatten und eine vollständige Kompatibilität herzustellen, wurde der Quirks-Modus geschaffen. Dieser Modus kann entweder in der Quelldatei durch die Anweisung QUIRKS, oder bei der Assemblierung mit der Kommandozeilenoption /QUIRKS aktiviert werden.

Ideal-Modus

Dieser Modus enthält TASM-spezifische Erweiterungen und Änderungen zur MASM-Syntax, mit dem Ziel, den Assembler-Code übersichtlicher und konsistenter gestalten zu können. Borland verspricht mit dem IDEAL-Modus, "die Ecken und Kanten der MASM-Programmierung etwas zu glätten", sowie "eine bis zu 30 % schnellere Übersetzung (Assemblierung)". [3] Die Möglichkeiten sind Erweiterungen oder Veränderungen von bereits unter dem MASM' existierenden Möglichkeiten. Es erfolgt eine strengere Überprüfung von Datentypen, was eine Erkennung von Fehlern ermöglicht welche ohne diesen Modus erst zur Laufzeit festgestellt würden. Des Weiteren implementiert der Modus eine konsistentere und verständlichere Bezeichnung von Operatoren und Schlüsselworten. Des Weiteren werden einige wenige neue Prinzipien und Befehle eingeführt. Der TASM verwendet dabei eine neue Syntax, welche von der des MASM allerdings nicht radikal abweicht. Die Unterschiede sind im Einzelnen:

Regeln für Tokens

Der Punkt (.) darf nicht innerhalb einer Symbolbezeichnung verwandt werden, sondern nur als Operator für Strukturelemente oder in Gleitkommazahlen. Deshalb fangen MASM-Symbole welche mit einem Punkt beginnen hier mit dem Prozentzeichen (%), ganz ohne Sonderzeichen am Anfang an, oder sind umbenannt. Also beispielsweise:

%CREF anstatt .CREF
CONST anstatt .CONST
.ERRIF2 anstatt .ERR2

Im IDEAL-Modus ist die Verwendung eines Dezimalpunktes immer zwingend vorgeschrieben. Eine Gleitkommazahl mit dem Wert 1.0e7 wäre beispielsweise so darzustellen: FKZ DT 1.0e7. Die im MASM und MASM-Modus mögliche vereinfachte Darstellung der Form FKZ DT 1e7 ist nicht erlaubt. Diese Strenge verhindert eine mögliche Fehlinterpretation des MASM, welcher nach manchen Befehlen diesen Wert als Hexadezimalzahl 01E7 übersetzen könnte.

Global versus Lokal

Strukturelemente werden im IDEAL-Modus nicht global definiert, und existieren nur innerhalb der jeweiligen Struktur. Dies ermöglicht im Gegensatz zum MASM-Modus die Verwendung zweier gleichbenannter Elemente innerhalb und außerhalb einer Struktur bzw. in zwei verschiedenen Strukturen. So wäre folgender Codeausschnitt mit der Verwendung des Elementes Artikel in zwei Strukturen, sogar trotz des zusätzlich unterschiedlichen Datentyps (DW - DB), erlaubt.

STRUC WikipediaEins
Artikel DW ?
ENDS

STRUC WikipediaZwei
Artikel DB ?
ENDS

Einzelnachweise

  1. V. Rajaraman, S. Rajasekaran, V. Rajaraman T. Radhakrishnan, T. Radhakrishnan: Essentials of Assembly Language Programming for the IBM PC, 2004, Seite 5
  2. Trutz Eyke Podschun: Das Assemblerbuch - Grundlagen, Einführung und Hochsprachenoptimierung, Addison-Wesley, 2002, Seite 557
  3. Borland Turbo Assembler - Benutzerhandbuch, Band 1, in der deutschen Übersetzung von Alois Stocklauser, Heimsoeth software GmbH & Co, München, 2. Auflage, 1988, Seite 579

Literatur

  • Jörg Schieb, Michael Tischer: Das große TURBO ASSEMBLER - Buch, Data Becker, ISBN 3-89011-282-X
  • Peter Monadjemi: Turbo Assembler - Das Buch für den Einstieg, Addison-Wesley, 1992
  • Ernst-Wolfgang Dieterich: Turbo Assembler, Oldenbourg Verlag, 1993
  • Tom Swan: Mastering Turbo Assembler, Sams Publishing, 1995
  • Joachim Rhode, Marcus Roming, Assembler - Grundlagen der Programmierung, mitp Verlag, 2. Auflage 2006, ISBN 3-8266-1469-0

Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Turbo Assembler — ou TASM, est un assembleur pour la famille de processeurs x86, créé par Borland. Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Voir aussi Turbo C Turbo Pascal Turbo Basic Assembleur Programme… …   Wikipédia en Français

  • Turbo Assembler — Infobox Software name = Turbo Assembler developer = Borland latest release version = latest release date = operating system = genre = Assembler license = website = The Turbo Assembler (TASM) mainly PC targeted assembler package was Borland s… …   Wikipedia

  • Turbo Assembler — El Turbo Assembler (TASM), un paquete ensamblador principalmente destinado a la plataforma del IBM PC y sus compatibles. Fue la oferta de Borland en el mercado de herramientas de programación en lenguaje ensamblador para la familia de los… …   Wikipedia Español

  • Turbo Pascal — est un environnement de développement intégré pour le langage Pascal. Sa puissance et son prix « démocratique » ont fait son succès dans les années 1980 et 1990. Sommaire 1 Histoire 2 Versions 3 Voir aussi …   Wikipédia en Français

  • Turbo Basic — est un environnement de développement intégré qui édité par Borland International (la version 1.0 est parue en 1987 en France). Il permettait de programmer en langage BASIC. À l inverse des autres environnements BASIC de l époque, qui étaient… …   Wikipédia en Français

  • Turbo C — est un environnement de développement intégré et un compilateur conçu par Borland pour le langage de programmation C. Sommaire 1 Historique des versions 2 Notes et références 3 Voir aussi …   Wikipédia en Français

  • Turbo Prolog — Desarrollador Borland Información general Lanzamiento 1986 Última versión estable 2.0 1988 …   Wikipedia Español

  • Turbo C++ — Infobox Software name = Turbo C++ caption = collapsible = author = developer = Borland released = February 28, 1991 latest release version = 2006 latest release date = September 5, 2006 latest preview version = latest preview date = frequently… …   Wikipedia

  • Turbo Debugger — In its prime, this tool provided a typical full screen debugger with powerful capabilities for watching the execution of instructions, monitoring machine registers, etc. Later versions are able to step through source code that includes debug… …   Wikipedia

  • Turbo C — Для термина «Turbo» см. другие значения. Turbo C  интегрированная среда разработки и компилятор языка программирования Си от Borland. Впервые выпущен в 1987 году и отличался удобством своей интегрированной среды разработки, малым размером,… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”