Prehľad historického vývoja assemblerov
Rozobral som históriu počítačov, procesorov aj operačných systémov, ktorá priamo ovplyvňovala aj rozvoj strojovo orientovaných jazykov.
V tejto časti rozoberiem konkrétne typy najznámejších assemblerov, tak ako
postupne vznikali. Mnohé z nich už v súčasnosti nie sú aktualizované, ale v
minulosti znamenali veľký prelom.
Chronologický prehľad vývoja najdôležitejších assemblerov
Koniec 70tych rokov LISA
Lazer's Interactive Symbolic Assembler (Lisa) je interaktívny MOS6502 assembler pre počítače Apple II.
1981 Atari ASM Editor
Ide o program využívaný na editovanie, kompilovanie a debugovanie symbolického jazyka pre Atari 8-bit počítače. Nevýhodami bolo veľa bugov, pomalosť a absencia makier.
1981 MASM - Microsoft assembler
Microsoft Macro Assembler (skrátene MASM) je prekladač pre rodinu
mikroprocesorov x86. Pôvodne bol vytvorený spoločnosťou Microsoft pre vývoj ich
operačného systému MS-DOS a bol po dlhú dobu najpopulárnejším a nejvyužívanějším
assemblerom dostupným pre tento operačný systém. Podporoval používanie makier a
prvky štruktúrovaného programovania ako sú slučky, volanie procedúr
(preto je MASM označovaný ako vysokoúrovňový assembler). Neskoršie verzie
pridali schopnosť zostaviť programy z MS-DOSu aj pre operačné systémy Microsoft
Windows. MASM je jedným z mála vývojových nástrojov spoločnosti Microsoft (iným
je napr NMAKE), ktorá v jednej verzii dokázali vytvárať ako 16 bitový, tak aj 32
bitový kód. Najskôr podporoval aplikácie len pre MS-DOS, ďalšie verzie (5.1 a
6.0) podporovali tiež operačný systém OS / 2. Neskoršie verzie (6.1 +)
umožňovali vytvárať aplikácie pre Win32 konzolu, ktoré bolo možné za pomoci
Phare Lap TNT DOS extender prevádzkovať i v prostredí MS-DOSu (kvôli chybe vo
verzii 6.1 však nefungovali vo finálnej verzii Windows NT.
1982 MAC/65
MAC/65 bol assembler vyrobený pre Atari 8-bit rodiny mikropočítačov
1986 A86
Ide o kompaktný komerčný assembler vyrobený pre x86 rodinu mikroprocesorov. Dokáže vytvárať Windows-DOS
kompatibilné súbory .COM a .OBJ z textových súborov. Používa jednoduchú syntax a devízou je vysoká rýchlosť
písania kódu aj spúšťania kódu. Obsahuje aj D86 debugger. A86 a D86 boli vytvorené pre 16bit platformy.
Nástupcami pre 32bit platformy sa stali A386 a debugger D386.
1999 High Level Assembler
Je to symbolický jazyk, využívajúci zložitejšie konštrukcie (FOR,IF,ELSE,WHILE). Podporuje pokročilé dátové typy
a objektovo orientované symbolické programovanie. Syntax je podobná vyšším programovacím jazykom ako Pascal, Ada, C.
Účelom je zjednodušenie programovania v strojovo orientovaných jazykoch pre začiatočníkov. Napriek tomu však môže
programátor využiť aj jednoduché inštrukcie ako klasické assemblery ponúkajú.
1999 FASM - Flat assembler
Je to open-source Intel assembler podporujúci architektúry IA32(32 bitové) a X86-64(64 bitové). Jeho výhodami sú
rýchlosť, prenosnosť medzi operačnými systémami, optimalizácia veľkosti a podpora makier. Bol využitý k napísaniu
operačných systémov MenuetOS, KolibriOS a DexOS. FASM podporuje tieto operačné systémy: DOS , Windows, Unix-like (Linux, OpenBSD, atď.), MenuetOS, OctaOS, DexOS, SkyOS, Solar_OS.
2007 NASM - Netwide Assembler
Ide o assembler pre Intel X86 architektúru. Môže byť použitý k písaniu 16bit, 32bit(IA-32) aj 64bitových(X86-64) programov.
Jedná sa o najpopulárnejší assembler pre Linux a druhý najpopulárnejší assembler celkovo. Podporuje tieto operačné systémy:
Microsoft Windows, UNIX-like, OS/2, Mac OS, DOS.
2007 YASM
YASM je kompletný prepis NASM, pod novou BSD licenciou. Podporuje x86 a x86-64 architektúry.
Výhody oproti NASM
- Podporuje obe syntaxe, Intel aj "AT and T"
- Dynamickejší projekt - viac sa rozvíja
- knižničné rozhranie pre tvorcov kompilátorov
Podporuje tieto operačné systémy: Unixové OS, Microsoft Windows a DOS.
Obr.1 Prehľad assemblerov, operačných systémov, ktoré podporujú a stavu vývoja.