Asamblejas programmas apkopošana ar NASM
Apkopojums jūsu maza līmeņa kodējumu, izmantojot mnemoniku, pārvērš mašīnvalodā, ko apstrādātājs var saprast. Šis raksts netiks iemācīts jums programmēt ar NASM, bet gan izveidot izpildāmu komandu Linux un Windows sistēmai no NASM pirmkoda.
- Montāžas programmas apkopošana ar NASM Linux
- Avota faila izveide
- Avota faila montāža
- Izpildāmā izveide
- Programmas izpilde
- Montāžas programmas apkopošana ar NASM operētājsistēmai Windows
- Programmatūras instalēšana
- Avota faila izveide
- Avota faila montāža
- Programmas izveide un izpilde
Montāžas programmas apkopošana ar NASM Linux
Avota faila izveide
Lai to izdarītu, varat izmantot jebkuru teksta redaktoru, piemēram, Gedit, KWrite vai XEmacs . Saglabājot failu, piešķiriet tai paplašinājumu .asm .Avota faila montāža
Šim solim jums būs nepieciešama NASM programmatūra, kas ir instalēta jūsu datorā.Ja izmantojat Debian vai Ubuntu, vienkārši ierakstiet komandu:
sudo apt-get instalēt nasmu
Ja jums ir cita Linux izplatīšana, jums ir jāizmanto jūsu izplatīšanas pakotņu pārvaldnieks (piemēram, Urpmi, Yum, Emerge) vai lejupielādējiet NASM no oficiālās vietnes.
Lai apkopotu avota failu, izmantojiet šādu komandrindu:
nasm -f elf test.asm
Piemērā saglabātais .asm fails tiek saukts par test.asm . Tas izveidos failu ar nosaukumu test.o pašreizējā direktorijā.
NB! Šis fails nav izpildāms. Tas joprojām ir objekta fails.
Izpildāmā izveide
Tagad, kad mums ir objekta fails ar nosaukumu test.o, mums ir jāizveido izpildāmā versija.Jūsu programma var sākties ar procedūru, ko sauc par _start . Tas nozīmē, ka jūsu programmai ir savs iebraukšanas punkts, neizmantojot galveno funkciju. Tomēr, lai izveidotu izpildāmo failu, jums jāizmanto "l":
ld test.o -o tests
Alternatīvi, jūsu programma var sākties ar procedūru, ko sauc par galveno . Lai izveidotu izpildāmo failu, jums būs jāizmanto gcc:
gcc test.o -o tests
Tagad jūsu izpildāmā versija ir izveidota, pārbaudīta un atrodas pašreizējā direktorijā.
Programmas izpilde
Lai palaistu programmu, ko sauc par testu, vienkārši ievadiet šo komandu:. / pārbaude
Montāžas programmas apkopošana ar NASM operētājsistēmai Windows
Galvenā funkcija nav pieejama sistēmā Windows, un tā ir jāaizstāj ar WinMain .Ja jūsu ieejas punkts ir _start vai galvenais, tas ir jāmaina uz _WinMain @ 16 . Nomainiet atkārtojumu procedūras beigās, lai veiktu atkārtotu 16 :
sadaļaglobāls
:
mov eax, 0
ret 16
Programmatūras instalēšana
Vispirms jāinstalē //ccm.net/download/download 1025 NASM. Saglabājiet arhīvu kaut kur, jo tas tiks izmantots vēlāk.Visgrūtākais solis būs MinGW instalēšana, kas ir brīva Windows attīstības vide:
Sāciet ar jaunāko MingGW versiju no AZ. Palaidiet instalēšanas programmu, bet pašlaik nevajag atjaunināt. Atstājiet visas izvēles pēc noklusējuma un pagaidiet, līdz tā tiks instalēta.
Tagad jums ir nepieciešams ievietot NASM izstrādes vidē MinGW. Izņemiet NASM arhīvu. Jums vajadzētu iegūt mapi, kurā cita starpā ir fails ar nosaukumu nasm.exe . Kopējiet šo failu direktorijā C: MinGW .
Avota faila izveide
Tāpat kā Linux, nav nepieciešams izmantot konkrētu izdevēju, lai izveidotu avota failu NASM. Varat izmantot Notepad . Bet ņemiet vērā, ka tai ir tendence pievienot .txt paplašinājumu failiem, ko tas rada. Lai novērstu jebkādu neskaidrību, ieteicams skatīt failu paplašinājumus.Jebkurā gadījumā izvairieties no vārdu procesoriem, piemēram, Word vai WordPad .
Ja vēlaties, varat izmantot arī redaktoru, kas izmanto NASM sintaksi, piemēram, NasmEdit IDE .
Pārliecinieties, vai jūsu avota fails ir saglabāts ar .asm paplašinājumu.
Avota faila montāža
Atveriet komandu logu, dodoties uz Start> Run un ierakstiet cmd.exeIzmantojot komandu cd, dodieties uz mapi, kurā atrodas jūsu avota fails. Kad esat šajā direktorijā, apkopojiet avota failu ( test.asm ) ar šo komandu:
nasm -f win32 test.asm -o test.o
Tagad esat izveidojis objekta failu. Nākamais solis būs pārvērst to par izpildāmo failu.
Programmas izveide un izpilde
Komandu logā ierakstiet galīgo komandu, lai izveidotu izpildāmo:ld test.o -o test.exe
Attēls: © Alexandr Pakhnyushchyy - Shutterstock.com