11.2. Hexadezimalcodierung |
![]() |
![]() |
Letztmalig dran rumgefummelt: 19.09.13 19:10:32 |
![]() |
Bei hexadezimaler Programmierung
übernimmt der Software-Entwickler direkt die Übersetzung seiner Gedanken in
rechnerinterne Befehle. Das sind in jedem Falle immer zweistellige
Hexadezimalzahlen, deren Rolle damit auch künftig nicht weichen wird. Auch in
den modernsten Rechnern werden die übersetzten Programme als Folgen
zweistelliger Hexadezimalzahlen im RAM abgelegt - von externen Datenträgern
dagegen kann auch eine größere Datenbitbreite angewandt werden (IDE-BUS). |
||||||
![]() |
1. Rechnerbefehlssätze |
||||||
![]() |
|
||||||
![]() |
Merke: alle Hochsprachen (ja auch C ++) generieren einen nicht optimalen Zwischencode - der ist immer länger, als auf der Assemblerebene entwickelt. |
1. Rechnerbefehlssätze |
![]() |
![]() |
![]() |
![]() |
In der Assemblersprache werden die einzelnen Maschinenbefehle durch Textzeilen formuliert. Jeder Befehl entspricht einer Zeile, in, der der Operationscode und die Operanden durch Abkürzungen geschrieben werden. Statt, der Speicheradresse, p die der Maschinenbefehl gespeichert wird, bekommt die Assemblerzeile einen Namen (Marke). Da der Rechner jedoch nur Maschinenbefehle versteht, muss ein Assemblerprogramm in Maschinenbefehle umgewandelt werden. Dies realisiert der Assembler. |
||||
![]() |
Z80-Befehlssatz |
2. Programmnotation - Listings - HEX-Dumps |
![]() |
![]() |
![]() |
![]() |
Im Prinzip sind wir hier der Assembler - auf Grundlage der Kenntnis des Prozessors sowie seiner Möglichkeiten, muss ich auf Assemblerebene denken, anschließend die Konvertierungstabellen studieren und für den gewünschten befehl den entsprechenden Code heraus suchen - nichts andres macht übrigens ein Assembler. Auch die Notationsfolge sollte eingehalten werden. |
![]() |
so werden Hex-Listings entwickelt - sie könnten ohne weiteres von einem Assembler übersetzt werden |
![]() |
|
![]() |
3. Adressrechnung |
![]() |
![]() |
![]() |
![]() |
Komplex wird die Adressrechnung erst bei den relativen Adressierungsarten von Sprüngen. Diese liefern zwar optimale Programme, deren Code im RAM verschoben werden kann und dennoch ohne Änderungen lauffähig bleibt, aber die Adressrechnung ist unangenehm. Ich hab' mir deshalb das folgende kleine Tool entwickelt, welches sämtliche Fallen berücksichtigt - und davon gibt es reichlich ;-) |
![]() |
|
![]() |
4. Verwandte Themen |
![]() |
![]() |
![]() |
![]() |
Die Hexadzimalcodierung ist vor allem am Anfang für die von uns in AGs gebastelten Microcomputer sehr vorteilhaft einsetzbar. Das geht alles noch relativ einfach und ist noch auch in der Vermittlung zu verstehen. Kommen dann Assembler hinzu, wird's wesentlich komplizierter, aber natürlic auch einfacher, wenn man diese Werkzeuge beherrscht. |
||||||
![]() |
Hardwarefragen |
||||||
![]() |
Softwarefragen |
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost im März 2007 |
... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-) „Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“ Diddi Hallervorden, dt. Komiker und Kabarettist |