Tutorial
Inlineassembler in FreeBASIC
Warum mit Inlineassembler programmieren?
Kleine Programme, die nur geringe Datenmengen verarbeiten, sind in freeBASIC erstellt die bessere Wahl.
Zwei Gründe sprechen dafür: der Programmier- und Zeitaufwand für die Erstellung von Inlineassembler ist zu groß und der Beschleunigungsfaktor zu gering. Zudem wird freeBASIC schon zu einem guten Teil aus assembleroptimierten Routinen zusammengesetzt.
Lohnenswert ist es dann, wenn Programmteile millionenfach abgearbeitet werden müssen. Dort summieren sich kleinste Zeitvorteile zu Sekunden und Minuten. Auch wenn einige Megabyte in Millisekunden in den Videospeicher geschaufelt werden müssen kann Inlineassembler Vorteile bringen.
Manche dieser hart erarbeiteten Zeitvorteile werden dann aber durch Multitasking - Betriebssysteme zunichte gemacht, weil der Prozessor durch ständige Unterbrechungen doch wieder längere Abarbeitungszeiten braucht.
Die Betriebssysteme schränken auch den Einsatz der Assemblerbefehle ein, da sie meist ein spezielles Speichermodell benutzen oder Hardwarenahe Programmierung blockieren.
Wer intensiver mit Assembler arbeiten will, sollte gute Kenntnisse von Funktion der Hardware und des verwendeten Betriebssystems haben.
Da wir uns hier mit Inlineassembler in freeBASIC praxisnah befassen wollen werde ich Grundlagen der Assemblerprogrammierung hier so knapp als möglich halten.
Wer mehr davon wissen möchte dem empfehle ich ein Script:
Die Assemblersprache der i80x86-Prozessoren, von Prof. Dr. K. Wüst
(Stand März 2003, PDF-Datei, 1280 KB).
Meiner Meinung nach ist es so geschrieben, dass es auch ein interessierter Laie verstehen kann.
Wichtiger Hinweis
Die in diesem Tutorial vorgestellten Programme mit Inline-Assembler wurden für die Intel x86 (32-Bit) Architektur geschrieben. FreeBasic unterstützt auch auf anderen Architekturen Inline-Assembler. Assembler Code für andere vom FreeBasic Compiler unterstützte Architekturen wie etwa x86_64 (64-Bit) oder ARMv6/ARMv7 unterscheiden sich jedoch teilweise sehr stark von der hier vorgestellten Architektur.
Zusätzliche Informationen und Funktionen |
- Das Tutorial wurde am 09.08.2008 von Volta angelegt.
- Die aktuellste Version wurde am 25.04.2024 von Volta gespeichert.
|
|