Assembler

Inhaltsverzeichnis:
GNU-Binutils bei Wikipedia(external link)
GNU-Assembler bei Wikipedia(external link)
GNU-Assembler bei Wikipedia (deutsch)(external link)
PDF-Anleitung zum GNU-Assembler

"The GNU Assembler - Assembler Directives"(external link)

In jedes C-Programm werden automatisch einige Assemblerprogramme eingebunden. Die Startinitialisierung des Systems ist eine
Funktion, die in jedes C-Programm eingebunden wird. Sollen Interrupts verarbeitet werden. dann werden mehrere Funktionen in Assembler
in ein C-Programm eingebunden. Diese Funktionen sind:

  1. Freigabe aller Interrupts durch die CPU
  2. Sperren aller Interrupts durch die CPU
  3. Verteilung der Interruptquellen auf einzelne ISR-Funktionen, die in C geschrieben werden können und Rücksprung in das unterbrochene Programm.

Weitere Assembler Funktionen werden zur Ausgabe auf das SFR_LED Register, zum Lesen der oberen 18 Bit des Produkts einer Multiplikation von 18*18 Bit und zur Ansteuerung des 2*16 Zeichen LCD-Moduls bereitgestellt.
Für den Test des delay Slot werden auch Assemblerprogramme bereit gestellt, da der delay Slot zur Zeit vom C-Compiler noch nicht unterstützt wird. Auch die 36 Bit Operationen mit OV und CY Flag können auf den GNU-Assembler umgestellt werden. Auf diesem Weg könnten auch Tests für alle Befehle des SpartanMC implementiert werden.

Alle Assembler Programme stellen Funktionen zur Verfügung, die von einem C-Programm aufgerufen werden können. Es sind Funktionen zur Nutzung von systemspeziefischen Hardware Einrichtungen, die man nicht in einer Hochsprache realisieren kann.

Genauere Informationen dazu finden Sie unter Assemblerfunktionen für den GCC(external link).

Beispiel einer SpartanMC Assemblerquelle zur Bildung einer 8 Bit Summe
Assemblerliste von Summe 8 Bit


SpartanMC