Sammanställning av ett församlingsprogram med NASM
En sammansättning kommer att göra din lågnivåkodning, med hjälp av mnemonics, till maskinens språk som kan förstås av processorn. Denna artikel kommer inte att lära dig att programmera med NASM, men att skapa ett körbart kommando för Linux och Windows från NASM källkod.
- Sammanställning av ett församlingsprogram med NASM för Linux
- Skapa källfilen
- Montering av källfilen
- Skapa körbar
- Programutförande
- Sammanställning av ett församlingsprogram med NASM för Windows
- Installera programvaran
- Skapa en källfil
- Montering av källfilen
- Skapande och genomförande av programmet
Sammanställning av ett församlingsprogram med NASM för Linux
Skapa källfilen
Du kan använda någon textredigerare, som Gedit, KWrite eller XEmacs, för att göra det. När du sparar din fil, ge den tillägget .asm .Montering av källfilen
För detta steg behöver du NASM-programvara installerad på din maskin.Om du kör Debian eller Ubuntu skriver du bara kommandot:
sudo apt-get installera nasm
Om du har en annan Linux-distribution måste du använda distributionspakethanteraren (t.ex. Urpmi, Yum, Emerge) eller ladda ner NASM från den officiella webbplatsen.
Använd följande kommandorad för att montera din källfil:
nasm -f elf test.asm
I exemplet heter den sparade .asm-filen test.asm . Detta skapar en fil med namnet test.o i den aktuella katalogen.
Obs! Den här filen är inte körbar. Det är fortfarande en objektfil.
Skapa körbar
Nu när vi har vår objektfil, heter test.o, måste vi skapa vår körbar.Ditt program kan börja med ett förfarande kallat _start . Det innebär att ditt program har sin egen ingångspunkt, utan att huvudfunktionen används. Du måste dock använda "l" för att skapa din körbar:
ld test.o -o test
Alternativt kan ditt program börja med ett förfarande som kallas huvud . Du måste använda gcc för att skapa din körbar:
gcc test.o -o test
Nu är din körbar skapad, testad och lokaliserad i den aktuella katalogen.
Programutförande
För att köra programmet som kallas test, skriv bara det här kommandot:. / test
Sammanställning av ett församlingsprogram med NASM för Windows
Huvudfunktionen är inte tillgänglig under Windows och måste ersättas av WinMain .Om din startpunkt är _start eller main, bör den ändras till _WinMain @ 16 . Ändra också retet i slutet av proceduren till ret 16 :
avsnitt .textglobal
:
mov eax, 0
ret 16
Installera programvaran
Du måste först installera //ccm.net/download/download 1025 NASM. Håll ett arkiv någonstans, eftersom det kommer att användas senare.Det svåraste steget kommer att installera MinGW, vilket är en fri utvecklingsmiljö för Windows:
Börja med att välja den senaste versionen av MingGW från AZ. Kör installationsprogrammet, men uppdatera inte vid denna tidpunkt. Lämna alla alternativ som valts som standard och vänta tills det installeras.
Nu behöver du infoga NASM i utvecklingsmiljön MinGW. Packa upp NASM-arkivet. Du ska få en mapp som bland annat innehåller en fil med namnet nasm.exe . Kopiera den här filen till katalogen C: \ MinGW \ bin .
Skapa en källfil
Liksom Linux är det inte nödvändigt att använda en specifik utgivare för att skapa en källfil för NASM. Du kan använda Anteckningar . Men notera att det tenderar att lägga till .txt- tillägget till filer som skapas. För att ta bort eventuell otydlighet rekommenderas att du ser filnamnstilläggen.Under alla omständigheter undviker du ordbehandlare, t.ex. Word eller WordPad .
Om du vill kan du också använda en redigerare som använder NASM-syntaxen, en sådan NasmEdit IDE .
Se till att du sparar din källfil med .asm- tillägget.
Montering av källfilen
Öppna kommandofönstret genom att gå till Start> Kör och skriv cmd.exeAnvänd kommandot cd, gå till mappen som innehåller din källfil. När du är i denna katalog, montera din källfil ( test.asm ) med det här kommandot:
nasm -f win32 test.asm -o test.o
Du har nu skapat en objektfil. Nästa steg är att göra det till en körbar fil.
Skapande och genomförande av programmet
Skriv in det slutliga kommandot i ditt kommandofönster för att skapa körbar:ld test.o -o test.exe
Bild: © Alexandr Pakhnyushchyy - Shutterstock.com