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.

Slovník skratiek

  • JSA - jazyky symbolických adries
  • VPJ - vyššie programovacie jazyky
  • CPU - procesor
  • ISA - inštrukčná sada
  • ASM - assembler
  • OS - operačný systém

Diskusia