Zostavenie programu zhromaždenia s NASM
Zostavenie zmení vaše nízkoúrovňové kódovanie pomocou mnemotechniky na strojový jazyk, ktorý môže procesor pochopiť. Tento článok vás naučí program s NASM, ale vytvoriť spustiteľný príkaz pre Linux a Windows zo zdrojového kódu NASM.
- Kompilácia programu zhromaždenia s NASM pre Linux
- Vytvorenie zdrojového súboru
- Zostavenie zdrojového súboru
- Vytvorenie spustiteľného súboru
- Vykonávanie programu
- Kompilácia programu zhromaždenia s NASM pre Windows
- Inštalácia softvéru
- Vytvorenie zdrojového súboru
- Zostavenie zdrojového súboru
- Tvorba a realizácia programu
Kompilácia programu zhromaždenia s NASM pre Linux
Vytvorenie zdrojového súboru
Na tento účel môžete použiť ľubovoľný textový editor, napríklad Gedit, KWrite alebo XEmacs . Keď uložíte súbor, dajte mu príponu .asm .Zostavenie zdrojového súboru
Pre tento krok budete potrebovať softvér NASM nainštalovaný na vašom počítači.Ak používate Debian alebo Ubuntu, jednoducho zadajte príkaz:
sudo apt-get install nasm
Ak máte inú distribúciu Linuxu, musíte použiť správcu balíkov distribúcie (napr. Urpmi, Yum, Emerge) alebo stiahnuť NASM z oficiálnych stránok.
Na zostavenie zdrojového súboru použite nasledujúci príkazový riadok:
nasm -f elf test.asm
V príklade sa uložený súbor .asm nazýva test.asm . Vytvorí sa súbor s názvom test.o v aktuálnom adresári.
NB Tento súbor nie je spustiteľný. Je to stále objektový súbor.
Vytvorenie spustiteľného súboru
Teraz, keď máme náš objektový súbor s názvom test.o, musíme vytvoriť náš spustiteľný súbor.Váš program môže začať procedúrou s názvom _start . To znamená, že váš program má svoj vlastný vstupný bod, bez použitia hlavnej funkcie. Na vytvorenie spustiteľného súboru však budete musieť použiť znak „l“:
ld test.o -o test
Prípadne môže váš program začať postupom nazývaným hlavné . Na vytvorenie spustiteľného súboru budete musieť použiť gcc:
gcc test.o -o test
Teraz je spustiteľný súbor vytvorený, testovaný a umiestnený v aktuálnom adresári.
Vykonávanie programu
Ak chcete spustiť program s názvom test, zadajte tento príkaz:, / test
Kompilácia programu zhromaždenia s NASM pre Windows
Hlavná funkcia nie je dostupná pod Windows a musí byť nahradená WinMain .Ak je váš vstupný bod _start alebo main, mal by sa zmeniť na _WinMain @ 16 . Taktiež zmeňte ret na konci procedúry na ret 16 :
časť .textglobálne
:
mov eax, 0
ret
Inštalácia softvéru
Najprv musíte nainštalovať //ccm.net/download/download 1025 NASM. Uchovávajte archív niekde, pretože bude použitý neskôr.Najťažším krokom bude inštalácia MinGW, čo je bezplatné vývojové prostredie pre Windows:
Začnite výberom najnovšej verzie MingGW od AZ. Spustite inštalačný program, ale v tomto bode neaktualizujte. Ponechajte predvolene vybrané všetky možnosti a počkajte, kým sa nainštaluje.
Teraz musíte vložiť NASM do vývojového prostredia MinGW. Rozbaľte NASM archív. Mali by ste dostať priečinok obsahujúci okrem iného súbor s názvom nasm.exe . Skopírujte tento súbor do adresára C: MinGW bin .
Vytvorenie zdrojového súboru
Podobne ako Linux nemusíte na vytvorenie zdrojového súboru pre NASM používať konkrétneho vydavateľa. Môžete použiť Poznámkový blok . Všimnite si však, že má tendenciu pridávať príponu .txt do súborov, ktoré vytvára. Ak chcete odstrániť akékoľvek nejasnosti, odporúča sa zobraziť rozšírenia súborov.V každom prípade sa vyhnite textovým editorom, napríklad Wordu alebo WordPad .
Ak si želáte, môžete použiť aj editor, ktorý používa syntax NASM, ako napríklad IDE NasmEdit .
Uistite sa, že váš zdrojový súbor uložte s príponou .asm .
Zostavenie zdrojového súboru
Otvorte okno Command príkazom Start> Run a napíšte cmd.exePomocou príkazu cd prejdite do priečinka obsahujúceho zdrojový súbor. Keď sa nachádzate v tomto adresári, zostavte zdrojový súbor ( test.asm ) pomocou tohto príkazu:
nasm -f win32 test.asm -o test.o
Teraz ste vytvorili súbor objektu. Ďalším krokom bude premeniť ho na spustiteľný súbor.
Tvorba a realizácia programu
V okne Command zadajte finálny príkaz na vytvorenie spustiteľného súboru:ld test.o -o test.exe
Obrázok: © Alexandr Pakhnyushchyy - Shutterstock.com