Assembler

Grundlagen der PC-Programmierung.
eBook pdf

Dieses eBook können Sie auf allen Geräten lesen, die pdf-fähig sind z.B. auf den tolino oder Sony Readern.

Systematisch führt Dieterich in die Assembler-Programmierung auf dem PC ein und stellt anhand zahlreicher Beispiele - herstellerneutral - die Sprachelemente von Assembler vor. Aus dem Inhalt: Die Entwicklungsumgebung - Aufbau eines Assembler-Program

weiterlesen
Dieser Artikel ist auch verfügbar als:
eBook pdf

39,95 *

inkl. MwSt.
Sofort lieferbar (Download)
Machen Sie jemandem eine Freude und
verschenken Sie einen Download!
Ganz einfach Downloads verschenken - so funktioniert's:
  1. 1 Geben Sie die Adresse der Person ein, die Sie beschenken
    möchten. Mit einer lieben Grußbotschaft verleihen Sie Ihrem
    Geschenk eine persönliche Note.
  2. 2 Bezahlen Sie das Geschenk bequem per Kreditkarte,
    Überweisung oder Lastschrift.
  3. 3 Der/die Geschenkempfänger/in bekommt von uns Ihre Nachricht
    und eine Anleitung zum Downloaden Ihres Geschenks!
Assembler als eBook pdf

Produktdetails

Titel: Assembler
Autor/en: Ernst-Wolfgang Dieterich

ISBN: 348659320X
EAN: 9783486593204
Format:  PDF ohne DRM
Grundlagen der PC-Programmierung.
Gruyter, Walter de GmbH

1. Januar 2009 - pdf eBook - 368 Seiten

Beschreibung

Systematisch führt Dieterich in die Assembler-Programmierung auf dem PC ein und stellt anhand zahlreicher Beispiele - herstellerneutral - die Sprachelemente von Assembler vor. Aus dem Inhalt: Die Entwicklungsumgebung - Aufbau eines Assembler-Programms - Konstanten und Variablen - Arithmetische Begriffe - Kontrollstrukturen im Assembler - Adressierungsarten - Makros und bedingte Assemblierung - Unterprogramme - Segmente und Segment-Anweisungen - Modularisierung von Programmen - Assembler und Hochsprachen - Zusammengesetzte Datentypen - Andere Prozessoren.

Inhaltsverzeichnis

1;Inhaltsverzeichnis;6 2;1 Vorwort;10 2.1;Vorwort zur 5. Auflage;10 2.2;Vorwort zur 4. Auflage;10 2.3;Vorwort zur 1. Auflage;10 3;2 Die Entwicklungsumgebung;14 3.1;2.1 Ein einfaches Beispiel;16 3.2;2.2 Assembler und Linker;17 3.3;2.3 Der Debugger;18 4;3 Allgemeiner Aufbau eines Assembler- Programms;22 4.1;3.1 Bezeichner;23 4.2;3.2 Befehle;25 4.3;3.3 Direktiven;26 4.4;3.4 Ein Standard-Rahmen für Assembler-Programme;27 4.5;3.5 Befehle und Direktiven des Beispielprogramms;28 4.6;3.6 Makro-Aufrufe;31 4.7;3.7 Das Assembler-Listing;39 5;4 Konstanten und Variablen;48 5.1;4.1 Ganze Zahlen;48 5.2;4.2 Zeichen und Zeichenketten;51 5.3;4.3 Vereinbarung von Variablen;52 5.4;4.4 Konstante Ausdrücke;56 5.5;4.5 Konstanten-Vereinbarung;64 6;5 Arithmetische Befehle;68 6.1;5.1 Die Register;68 6.2;5.2 Zuweisung, Addition und Subtraktion;74 6.3;5.3 Schiebebefehle;79 6.4;5.4 Multiplikation;84 6.5;5.5 Division;89 6.6;5.6 Logische Befehle;92 6.7;5.7 Keller-Befehle;96 7;6 Kontrollstrukturen im Assembler;98 7.1;6.1 Die einseitige Verzweigung;99 7.2;6.2 Die zweiseitige Verzweigung;108 7.3;6.3 Bedingungsschleifen;109 7.4;6.4 Zählschleifen;116 8;7 Adressierungsarten;120 8.1;7.1 Die unmittelbare und die direkte Adressierung;120 8.2;7.2 Die Index-Adressierung;122 8.3;7.3 Die indirekte Adressierung;130 8.4;7.4 Die basis-indizierte Adressierung;132 8.5;7.5 Die index-indirekte Adressierung;137 8.6;7.6 Die Stringadressierung;140 9;8 Makros und bedingte Assemblierung;154 9.1;8.1 Makro-Definition und Makro-Aufruf;155 9.2;8.2 Blockwiederholungen;166 9.3;8.3 Bedingte Assemblierung;171 9.4;8.4 Geschachtelte Makros;181 9.5;8.5 Weitere Direktiven zur Steuerung der Listing- Ausgabe;185 10;9 Unterprogramme;188 10.1;9.1 Definition und Aufruf von Unterprogrammen;189 10.2;9.2 Parameter-Übergabe;191 10.3;9.3 Lokale Marken und lokale Variable;202 10.4;9.4 Ergebnisse aus Unterprogrammen;206 10.5;9.5 Spezielle Direktiven;209 10.6;9.6 Rekursive Unterprogramme;217 10.7;9.7 Aufruf von Interrupt-Routinen;225 10.8;9.8 Se
lbstgeschriebene Interrupt-Routinen;237 11;10 Segmente und Segment- Anweisungen;242 11.1;10.1 Die physikalische Speicheradresse;242 11.2;10.2 Die vereinfachten Segment-Anweisungen;248 11.3;10.3 Die Standard-Segment-Anweisungen;252 11.4;10.4 Die Segmente der vereinfachten Segment- Anweisungen;260 11.5;10.5 Kommandozeilen-Parameter;263 11.6;10.6 Der Bildschirm-Speicher;267 12;11 Modularisierung von Programmen;270 12.1;11.1 Sprachmittel des Assemblers zur Modularisierung;273 12.2;11.2 Der Binder;278 12.3;11.3 Die Bibliotheksverwaltung;284 13;12 Assembler und Hochsprachen;286 13.1;12.1 Die Schnittstelle zu C++ und C;289 13.2;12.2 Die Schnittstelle zu Pascal;308 13.3;12.3 Die Schnittstelle zu Turbo Pascal;308 14;13 Zusammengesetzte Datentypen;322 14.1;13.1 Strukturen;323 14.2;13.2 Variante Strukturen;328 14.3;13.3 Records;331 15;14 Andere Prozessoren;334 15.1;14.1 Einstellung des Prozessors;335 15.2;14.2 Die neuen und erweiterten Befehle des 80186 und 80286;336 15.3;14.3 Der 32 Bit-Prozessor 80386;340 16;Anhang;348 16.1;A Die verwendeten Makros;348 16.2;B ASCII-Tabelle;357 16.3;Erweiterte ASCII-Tabelle;358 17;Literaturverzeichnis;359 18;Index;360 19;Beispiele zu diesem Buch;369


Leseprobe

9.7 Aufruf von Interrupt-Routinen (S. 216)
Die Kommunikation eines Programms mit dem Benutzer erfolgt im Wesentlichen über Eingabe- und Ausgabe-Aktionen. Dabei erfolgt die Eingabe meist über die Tastatur, die Ausgabe wird häufig an den Bildschirm oder den Drucker geschickt. In unseren bisherigen Beispielen haben wir hierzu verschiedene Varianten der read- und write- Makros verwendet, die in der Datei macros.mac definiert und in den Programmen durch die Direktive include macros.mac zur Verfügung gestellt wurden. Wie wir wissen, können und müssen wir im Assembler jedes Detail unseres Rechners programmieren. So muss man z.B. für die Ausgabe eines ASCII-Zeichens auf dem Bildschirm einen recht aufwendigen Algorithmus durchlaufen:

• zuerst muss man feststellen, ob das Zeichen tatsächlich auf dem Bildschirm dargestellt werden soll oder ob es ein Steuerzeichen ist,

• anschließend muss man ermitteln, welche Grafikkarte der Rechner hat, um die richtige Anfangsadresse des Bildschirmspeichers zu finden,

• schließlich muss das Zeichen – falls es dargestellt werden soll – an der aktuellen Cursorposition im Bildschirmspeicher abgelegt werden.

Aufgaben wie diese müssen auch vom Betriebssystem MS-DOS an vielen Stellen erledigt werden. Im Betriebssystem sind also etliche Routinen programmiert, die häufig verwendete Standard-Aufgaben verrichten. Diese Routinen stehen auch den Anwender- Programmen zur Verfügung.

Der Zugriff auf die Betriebssystem-Routinen erfolgt allerdings anders als der auf selbst geschriebene Unterprogramme. Die Betriebssystem-Routinen sind durchnumeriert – aus historischen Gründen nicht lückenlos und auch nicht logisch sortiert. Jeder Nummer einer Routine werden an einem absolut festen Speicherbereich, dem Interrupt-Vektor,
zwei Worte zugeordnet, in denen die Anfangsadresse der eigentlichen Interrupt-Routine steht. Der Interrupt-Vektor beginnt an der absoluten Adresse 0 und ist 1 KByte lang, da jeder Eintrag 4 Byte = 2 Worte lang ist, kann er also 256 Anfangsadressen solcher Routinen aufnehmen. Diese Betriebssystem-Routinen werden wir im Folgenden Interrupt-Routinen nennen.

Der Name Interrupt (= Unterbrechung) deutet darauf hin, dass hier irgendwie das laufende Programm unterbrochen wird. In der Tat verfügen die Prozessoren Intel 80x86 über ein recht praktisches Interrupt-Konzept, das auf Unterbrechungssignale schnell und sicher reagieren kann. Solche Unterbrechungssignale werden im Normalfall von Peripheriegeräten an den Prozessor gesendet. Wenn z.B. eine Taste der Tastatur gedrückt wird, erhält der Prozessor ein Unterbrechungssignal sowie eine Nummer n. Das löst dann den Start der Interrupt-Routine mit der Nummer n aus. Da jede Adresse im Interrupt-Vektor 4 Byte belegt, wird intern die Zahl n mit 4 multipliziert (bzw. um 2 Stellen nach links geschoben), und man erhält die Anfangsadresse der Speicherstelle, die der Interrupt-Routine mit Nummer n zugeordnet ist. Wie oben erwähnt, steht dort die Anfangsadresse der eigentlichen Interrupt-Routine, an die dann gesprungen wird. Zuvor werden noch automatisch das Status-Register sowie die aktuellen Werte der Register cs und ip auf dem Keller gesichert, damit nach der Rückkehr aus der Interrupt-Routine das Programm ordnungsgemäß fortgesetzt werden kann.

Wenn wir eine Routine des Betriebssystems aus unserem Assembler-Programm aufrufen möchten, müssen wir ebenfalls einen Interrupt auslösen. Dazu gibt es den Befehl int Zahl wobei Zahl die Nummer der gewünschten Interrupt-Routine ist.


Technik

Dieses eBook wird im PDF-Format ohne Kopierschutz geliefert. Sie können dieses eBook auf vielen gängigen Endgeräten lesen.

Sie können dieses eBook auf vielen gängigen Endgeräten lesen.

Für welche Geräte?
Sie können das eBook auf allen Lesegeräten, in Apps und in Lesesoftware öffnen, die PDF unterstützen:

  • tolino Reader
    Öffnen Sie das eBook nach der automatischen Synchronisation auf dem Reader oder übertragen Sie es manuell auf Ihr tolino Gerät mit der kostenlosen Software Adobe Digital Editions.

  • Andere eBook Reader
    Laden Sie das eBook direkt auf dem Reader im Hugendubel.de-Shop herunter oder übertragen Sie es mit der kostenlosen Software Sony READER FOR PC/Mac oder Adobe Digital Editions.

  • Für Tablets und Smartphones: Unsere Gratis tolino Lese-App
         

  • PC und Mac
    Lesen Sie das eBook direkt nach dem Herunterladen Herunterladen über "Jetzt lesen" im Browser oder mit der kostenlosen Lesesoftware Adobe Digital Editions.

Bitte beachten Sie: Dieses eBook ist nicht auf Kindle-Geräten lesbar.

Ihr erstes eBook?
Hier erhalten Sie alle Informationen rund um die digitalen Bücher für Neueinsteiger.

Servicehotline
089 - 70 80 99 47

Mo. - Fr. 8.00 - 20.00 Uhr
Sa. 10.00 - 20.00 Uhr
Filialhotline
089 - 30 75 75 75

Mo. - Sa. 9.00 - 20.00 Uhr
Bleiben Sie in Kontakt:
Sicher & bequem bezahlen:
akzeptierte Zahlungsarten: Überweisung, offene Rechnung,
Visa, Master Card, American Express, Paypal
Zustellung durch:
1 Mängelexemplare sind Bücher mit leichten Beschädigungen, die das Lesen aber nicht einschränken. Mängelexemplare sind durch einen Stempel als solche gekennzeichnet. Die frühere Buchpreisbindung ist aufgehoben. Angaben zu Preissenkungen beziehen sich auf den gebundenen Preis eines mangelfreien Exemplars.

2 Diese Artikel unterliegen nicht der Preisbindung, die Preisbindung dieser Artikel wurde aufgehoben oder der Preis wurde vom Verlag gesenkt. Die jeweils zutreffende Alternative wird Ihnen auf der Artikelseite dargestellt. Angaben zu Preissenkungen beziehen sich auf den vorherigen Preis.

4 Der gebundene Preis dieses Artikels wird nach Ablauf des auf der Artikelseite dargestellten Datums vom Verlag angehoben.

5 Der Preisvergleich bezieht sich auf die unverbindliche Preisempfehlung (UVP) des Herstellers.

6 Der gebundene Preis dieses Artikels wurde vom Verlag gesenkt. Angaben zu Preissenkungen beziehen sich auf den vorherigen Preis.

7 Die Preisbindung dieses Artikels wurde aufgehoben. Angaben zu Preissenkungen beziehen sich auf den vorherigen Preis.

* Alle Preise verstehen sich inkl. der gesetzlichen MwSt. Informationen über den Versand und anfallende Versandkosten finden Sie hier.