Jste zde

Kompilování z .asm souborů

Jak zkompilovat soubor z .ASM souboru do .BIN formátu - reakce na časté dotazy

čtenářů.

Budeme uvažovat modelový případ, že programujete v assembleru. Program,nebo spíš textový soubor, který je programem v assembleru, napíšete v jakémkolieditoru. Tento soubor potom zkompilujete pomocí překladače z assembleru,který lze získat volně v internetu, na objektový soubor s příponou .OBJ.Tohoto souboru lze s výhodou použít např. ke zpětnému odlaďování vašehoprogramu, neboť obsahuje v programu používané názvy návěští a proměnných, informace o systémových registrech atd.

Tento soubor je generován např. kvůli větším projektům, kde se výslednýkód vytváří z několika takovýchto souborů. Tento soubor je potřeba slinkovatlinkerem na data vhodná v uložení do paměti programu. K tomu lze použítnapř. utilitu OBJHEX.EXE (nebo OH.EXE) od firmy Intel. Výstupem je nynísoubor ve formátu .HEX. Tento formát se používá např. pro výpis  programůve strojovém kódu do časopisů, protože kromě dat obsahuje každý řádek zároveňkontrolní součet. Převést tento formát do požadovaného .BIN jež nebýváproblém. Často to umí i programátor pamětí sám. Pokud je to potřeba, lzena to použít např. utilitu HEXBIN.EXE.  Na tomto místě by bylo vhodnéupozornit na existenci několika formátu souboru .HEX. Nejčastěji používanábývá specifikace podle firmy Intel v 8bitovém režimu.

K assembleru, kterým budete kód kompilovat, bych měl ale něco dodat.Speciálně pro případ strojového kódu rodiny x51 je assemblerů k dispoziciveliké množství. Bohužel nejsou často navzájem 100% kompatibilní. Např.některé vyžadují striktní pojmenování akumulátoru jako A, jiné Acc a některévyžadují to, či ono podle konkrétní instrukce. Proto je dobré začínat skonkrétním assemblerem a používat nadále pokud možno stále tento. Výraznérozdíly jsou často také v interpretaci makroinstrukcí.  Často se takévyskytují assemblery, které generují přímo soubor .HEX. atd.

Vzhledem k těmto zmatkům, je považováno za slušnost používat v distribuovanýchrutinách, buď základ,  nebo připsat, v jakém assembleru
to bylo kompilováno. Někteří, dokonce tvrdí, že v distribuovaných rutinách,by vůbec neměly být makra použita.  Za jakýsi, i když velmi pochybný,standard, lze považovat assembler firmy Intel.
 

Zde je možno stáhnout batový soubor doplněný o OBJHEX a HEXBIN. - Download

 


Pokud máte nějaké návrhy, nebo připomínky, pošlete MAIL.

Jan Řehák 
Hodnocení článku: