SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

ELEKTRONIK

Pseudobefehle (Assembler-Direktiven)

Pseudobefehle erzeugen keine Maschinenbefehle sondern
  • erzeugen Konstante (bytes, words, longwords, strings)
  • beeinflußen den Adresspegel
  • führen zu Adressbucheinträgen
  • steuern den Übersetzungsvorgang

Der Assembler führt einen Zähler, der Auskunft über den aktuellenAdreßpegel gibt. Dieser 'Location Counter' dient beispielsweise zum Berechnernvon Sprungadressen. Die Pseudobefehle werden im OP-Code-Feld einer Assemblerzeileangegeben. Unser Assembler kennt folgende Direktiven:

ORG Origin
Der Location Counter wird auf die im Operandenfeld angegebene Adresse gesetzt, z. B.:
  ORG$8000 
EQU Equate
Definition eines Namens (Konstante, Marke). Der im Operandenfeld angegebene Wert wird dem im Markenfeld angegebenen Namen gleichgesetzt, z. B.:
 ETXEQU3 CR EQU$D LF   EQU  $A
                                       PUFL EQU  $100
                                       
DC.B Define Constant Byte
Reservierung von Speicherplatz und Belegung mit den im Operandenfeld angegebenen konstanten Byte-Werten. Mehrere Operanden durch Komma trennen! Z. B.:
                                       TAB  DC.B  $0D,$0A,$03
                                       
Neben einfachen Konstanten sind in (einfache oder doppelte) Hochkomma eingeschlossene Zeichenketten möglich. Die Hochkommas gehören dabei nicht zur Zeichenkette. In den Zeichenketten sind folgende Sonderzeichen erlaubt:
  • \a Bell ($07)
  • \f Formfeed ($0C)
  • \n Newline ($0A)
  • \r Carriage Return ($0D)
  • \t Tabulator ($09)
  • \\ \
Z. B.:
                                       TEXT  DC.B "Hello World!\n\r"
                                       
DC.W Define Constant Word
Reservierung von Speicherplatz und Belegung mit den im Operandenfeld angegebenen konstanten 16-Bit-Werten. Mehrere Operanden durch Komma trennen, z. B.:
                                       ATAB  DC.W  $FF30,$FF45,$FFA0
                                       
DC.L Define Constant Longword
Reservierung von Speicherplatz und Belegung mit den im Operandenfeld angegebenen konstanten 32-Bit-Werten. Mehrere Operanden durch Komma trennen, z. B.:
                                       XTAB  DC.L  $FF30FF45,$F000FFA0
                                       
DS.B
DS.W
DS.L
Define Storage Bytes/Words/Longwords
Reservieren von Speicherbytes, Speicherworten (16 Bit) oder Langworten (32 Bit) ohne Vorbelegung. Der Operand gibt die Anzahl der zu reservierenden Bytes an, z. B.:
                                       PUFFER  DS.B 100
                                       ADRTAB  DS.W 23
                                       
INCLUDE Einfügen einer Quelldatei an der entsprechenden Stelle. Der Dateiname wird entweder in < ... > (voreingestelltes Include-Verzeichnis) oder " ... " (beliebiger Dateipfad) eingeschlossen, z. B.:
                                            INCLUDE "definitionen.a"
                                            INCLUDE <HC11.h>
                                       
NOLIST Unterdrücken der Erzeugung eines Programmlistings bis zum nächsten LIST-Befehl.
LIST Fortsetzen des Listings nach einem voher pazierten NOLIST-Befehl.
END Ende des Assemblerprogramms. Optionaler Befehl am Programmende. Wird aus Gründen der Kompatibilität vom Assembler akzeptiert, kann aber weggelassen werden.

Anmerkung: Da bei einem Microcontroller zwischen ROM bzw. EEPROM-Speicher und RAM unterschieden werden muß, ist auch die Reservierung von Speicher von dieser Unterscheidung betroffen. Mit DC.B; DC.W oder DC.L vordefinierte Konstante liegen im ROM/EEPROM-Bereich, Mit DS.B, DS.W oder DS.L reservierter Speicher im RAM-Bereich.

Grundsätzlicher Aufbau eines 68HC11-Assemblerprogramms

1. Konstantendefinitionen

Hier werden alle Definitionen für Werte und Adressen (EQU-Anweisung) vorgenommen. Diese "Namensdefinitionen" belegen keinen Speicherplatz, sondern dienen nur der besseren Lesbarkeit und Wartbarkeit des Programms. Zum Beispiel:
                                          STACK    EQU  $7FFF  Stackbereich
                                          PROG     EQU  $8000  Programmbereich
                                          DATA     EQU  $2000  Datenbereich (auch Adr. 0 möglich)
                                          TVECT    EQU  $FFE0  Trace-Vektor
                                          RVECT    EQU  $FFFE  Reset-Vektor
                                       
                                          SCCR1    EQU  $102C
                                          SCCR2    EQU  $102D
                                          CR       EQU  13     Carriage-Return-Zeichen 
                                          LF       EQU  10     Linefeed-Zeichen 
                                          ETX      EQU  3      Textende 
                                          MAXDATA  EQU  100 
                                       
Wichtig sind die ersten fünf Zeilen, die bei keinem Programm fehlen dürfen. Sie legen die Adressbereiche für RAM und EEPROM fest und definieren die Adressen der beiden Vektoren, die immer gesetzt werden müssen.

2. Variablendefinitionen

Hier werden alle Daten definiert, die Speicherplatz belegen. Es ist ratsam, den Datenbereich durch eine eigene ORG-Anweisung einzuleiten, um die Daten an definierter Stelle im Speicher abzulegen. Bei einem Steuerungsrechner muß auf jeden Fall in Datenbereich (RAM) und Programmbereich (PROM) unterschieden werden. Man kann die Variablen auch nach dem Programmcode ablegen. Zum Beispiel:
                                                   ORG  DATA           Datenbereich z.B. ab Adresse $2000 
                                          COUNT    DC.B 0              Wert mit Null vorbelegen 
                                          PUFFER   DS.B 80             80 Byte Pufferbereich reservieren 
                                          TEXT     DC.B 'Hello World'  Text, abgeschlossen durch Zeilen- 
                                                   DC.B CR, LF, ETX    wechsel und Nullbyte 
                                       

3. Programmbereich

Nun folgt das eigentliche Progamm. Es wird immer mit einer ORG-Anweisung an eine definierte Adresse gelegt. Diese Adresse ist auch Startadresse des Programms.

Achtung: Der Assembler kümmert sich nicht um die Adreßlage des Programms, auch Überlappungen mit dem Datenbereich werden nicht als Fehler gemeldet aufpassen.

Es gibt zwei Möglichkeiten der Anordnung von Haupt- und Unterprogrammen. Üblich ist es, das Hauptprogramm am Anfang zu postieren und dann die Unterprogramme folgen zu lassen. Wer lieber die UP zuerst stehen hat, muß das HP mit einer Marke versehen (z. B. "MAIN") und nach der ORG-Anweisung als erste Anweisung einen Sprung zum HP eintragen, z. B.:

                                                   ....... Definitionen (1. und 2.) 
                                       
                                                   ORG  PROG           Programmbereich, z. B. $8000
                                                   JMP  MAIN 
                                       
                                                   ....... Unterprogramme 
                                       
                                          MAIN     LDS  #STACK         Stackpointer setzen, sonst geht nichts
                                                    .
                                                    .
                                                    .
                                                    .
                                       
                                                   ORG  TVECT
                                                   DC.W $00D3          Trace-Vektor setzen (Enwicklungssystem
                                                                       kann sonst keinen Trace
                                                   ORG  RVECT
                                                   DC.W MAIN           Reset-Vektor auf Programmanfang setzen
                                                    .
                                                    .                  ggf. weitere Vektoren setzen
                                                    .                  (z. B. INT)
                                                    .
                                             
                                                   END 
                                       

DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere