Sastavljanje programa skupštine s NASM-om
Skup će pretvoriti vaše kodiranje na niskoj razini, pomoću mnemotehnike, u strojni jezik koji procesor može razumjeti. Ovaj članak vas neće naučiti programirati s NASM-om, nego stvoriti izvršnu naredbu za Linux i Windows iz izvornog koda NASM-a.
- Sastavljanje programa skupa s NASM-om za Linux
- Izrada izvorne datoteke
- Sastavljanje izvorne datoteke
- Stvaranje Izvršne
- Izvršenje programa
- Sastavljanje programa za sastavljanje s NASM-om za Windows
- Instaliranje softvera
- Izrada izvorne datoteke
- Sastavljanje izvorne datoteke
- Izrada i izvršenje Programa
Sastavljanje programa skupa s NASM-om za Linux
Izrada izvorne datoteke
Za to možete koristiti bilo koji uređivač teksta, kao što su Gedit, KWrite ili XEmacs . Kada spremite datoteku, dajte joj ekstenziju .asm .Sastavljanje izvorne datoteke
Za ovaj korak trebat će vam NASM softver instaliran na vašem računalu.Ako koristite Debian ili Ubuntu, jednostavno upišite naredbu:
sudo apt-get install nasm
Ako imate drugu distribuciju Linuxa, morate koristiti upravitelja paketa za distribuciju (npr. Urpmi, Yum, Emerge) ili preuzeti NASM s službene stranice.
Upotrijebite sljedeću naredbenu liniju za sastavljanje izvorne datoteke:
nasm -f elf test.asm
U primjeru se spremljena datoteka .asm naziva test.asm . To će stvoriti datoteku pod nazivom test.o u trenutnom direktoriju.
NB Ova datoteka nije izvršna. To je još uvijek objektna datoteka.
Stvaranje Izvršne
Sada kada imamo objektnu datoteku pod nazivom test.o, moramo kreirati našu izvršnu datoteku.Vaš program može započeti s postupkom koji se zove _start . To znači da vaš program ima vlastitu točku ulaza, bez korištenja glavne funkcije. Međutim, morat ćete upotrijebiti "l" za izradu izvršne datoteke:
ld test.o -o test
Alternativno, vaš program može započeti s postupkom koji se zove glavni . Morat ćete upotrijebiti gcc za izradu izvršne datoteke:
gcc test.o -o test
Sada je vaša izvršna datoteka kreirana, testirana i smještena u trenutnom direktoriju.
Izvršenje programa
Da biste pokrenuli program koji se zove test, upišite ovu naredbu:, test
Sastavljanje programa za sastavljanje s NASM-om za Windows
Glavna funkcija nije dostupna u sustavu Windows i mora je zamijeniti WinMain .Ako je vaša ulazna točka _start ili main, trebate je promijeniti u _WinMain @ 16 . Također, promijenite ret na kraju postupka do retka 16 :
odjeljakglobalno
:
mov eax, 0
ret 16
Instaliranje softvera
Najprije morate instalirati //ccm.net/download/download 1025 NASM. Držite arhivu negdje, jer će se kasnije koristiti.Najteži korak će biti instaliranje MinGW-a, koji je besplatno razvojno okruženje za Windows:
Počnite odabirom najnovije verzije MingGW-a od AZ. Pokrenite instalacijski program, ali ne ažurirajte u ovom trenutku. Ostavite sve opcije odabrane prema zadanim postavkama i pričekajte da se instalira.
Sada morate umetnuti NASM u razvojno okruženje MinGW. Raspakirajte NASM arhivu. Trebali biste dobiti mapu koja, između ostalog, sadrži datoteku nazm.exe . Kopirajte ovu datoteku u direktorij C: MinGW bin .
Izrada izvorne datoteke
Poput Linuxa, nema potrebe za korištenjem određenog izdavača za stvaranje izvorne datoteke za NASM. Možete koristiti Notepad . Ali imajte na umu da je sklon dodavanju .txt ekstenzije datotekama koje stvara. Da biste uklonili nejasnoće, preporučujemo da pregledate proširenja svojih datoteka.U svakom slučaju, izbjegavajte procesore riječi, kao što su Word ili WordPad .
Ako želite, možete koristiti i uređivač koji koristi NASM sintaksu, kao što je NasmEdit IDE .
Provjerite jeste li spremili izvornu datoteku s nastavkom .asm .
Sastavljanje izvorne datoteke
Otvorite prozor naredbe tako da odete na Start> Pokreni i upišete cmd.exePomoću naredbe cd idite na mapu koja sadrži vašu izvornu datoteku. Nakon što ste u ovom direktoriju, sastavite izvornu datoteku ( test.asm ) s ovom naredbom:
nasm -f win32 test.asm -o test.o
Sada ste stvorili objektnu datoteku. Sljedeći korak je pretvoriti ga u izvršnu datoteku.
Izrada i izvršenje Programa
Iz prozora naredbe upišite završnu naredbu za izradu izvršne datoteke:ld test.o -o test.exe
Slika: © Alexandr Pakhnyushchyy - Shutterstock.com