|
|
|
Startseite News   NDR-NKC Geräte Z80 Geräte 68000 Geräte 8088NKC Emulator Z80 Section Baugruppen ROM's Software68000 Section Baugruppen ROM's PASCAL/S Software CP/M 68K8088 Section Baugruppen DownloadsBussysteme Stromversorgung Input / Output Grafikkarten Speicherkarten Massenspeicher Weitere Baugruppen Projekte Dokumentation Datenblätter Glossar Portraits Links Impressum |
Inline-AssemblerFür zeitkritische Programmteile oder zur direkten Ansteuerung der Hardware können im C-Quelltext Anweisungen in 68000 Assemblersprache verwendet werden. Dazu dient die Funktion asm(). Jede Assembler-Instruktion muss im C-Quelltext auf einer eigenen Zeile codiert werden.
Ein erstes BeispielZur besseren Lesbarkeit des C-Quelltextes lassen sich kleine Unterprogramme in C-Funktionen auslagern. Im folgenden Beispiel eine Routine zur Initialisierung der seriellen Schnittstelle.
Übergabe von Daten aus CHäufig ist es notwendig, Werte an das Maschinenprogramm zu übergeben. Die an eine C-Funktion übergebenen Parameter (hier char ch) können im Assembler-Code ab der Adresse #8(A6) ausgelesen werden.
Die Datentypen int, char und bool belegen jeweils 2 Bytes auf dem Stack-Frame, für die Datentypen long, float und double sowie alle Pointer werden 4 Bytes belegt. Im nächsten Beispiel werden zwei long-Variablen übergeben, daher ist der erste Parameter bei 8(A6) und der zweite Parameter bei 12(A6) abgelegt. Rückgabe von Werten an CDie Rückgabe von Werten geschieht über das Register D0. Eine Return-Anweisung darf am Ende der Funktion nicht benutzt werden.
Aufruf von Funktionen des BIOSMittels des Inline-Assemblers lassen sich recht einfach Funktionen des BIOS direkt aufrufen.
|