Съставяне на програма за събрание с NASM
Сглобяването ще превърне кодирането ви на ниско ниво, използвайки мнемоника, в машинен език, който може да бъде разбран от процесора. Тази статия няма да ви научи да програмирате с NASM, а да създадете изпълнима команда за Linux и Windows от изходния код на NASM.
- Съставяне на програма за сглобяване с NASM за Linux
- Създаване на изходния файл
- Сглобяване на изходния файл
- Създаване на изпълнимия файл
- Изпълнение на програмата
- Съставяне на програма за сглобяване с NASM за Windows
- Инсталиране на софтуера
- Създаване на изходен файл
- Сглобяване на изходния файл
- Създаване и изпълнение на програмата
Съставяне на програма за сглобяване с NASM за Linux
Създаване на изходния файл
Можете да използвате всеки текстов редактор, като Gedit, KWrite или XEmacs, за да го направите. Когато запазите файла си, дайте му разширение .asm .Сглобяване на изходния файл
За тази стъпка ще ви е необходим софтуер NASM, инсталиран на вашата машина.Ако използвате Debian или Ubuntu, просто въведете командата:
sudo apt-get install nasm
Ако имате друга дистрибуция на Linux, трябва да използвате мениджъра на пакети на вашия дистрибутор (напр. Urpmi, Yum, Emerge) или да изтеглите NASM от официалния сайт.
Използвайте следния команден ред, за да съберете изходния си файл:
nasm -f elf test.asm
В примера записаният .asm файл се нарича test.asm . Това ще създаде файл с име test.o в текущата директория.
NB Този файл не е изпълним. Той все още е обектен файл.
Създаване на изпълнимия файл
Сега, когато имаме обектния файл, наречен test.o, трябва да създадем своя изпълним файл.Вашата програма може да започне с процедура, наречена _start . Това означава, че вашата програма има своя собствена точка на влизане, без използването на основната функция. Трябва обаче да използвате „l“, за да създадете изпълнимия си файл:
ld test.o -o тест
Алтернативно, вашата програма може да започне с процедура наречена main . Трябва да използвате gcc, за да създадете изпълнимия си файл:
gcc test.o -o тест
Сега изпълнимият ви файл е създаден, тестван и разположен в текущата директория.
Изпълнение на програмата
За да стартирате програмата, наречена тест, напишете тази команда:, / тест
Съставяне на програма за сглобяване с NASM за Windows
Основната функция не е достъпна под Windows и трябва да бъде заменена от WinMain .Ако входната точка е _start или main, тя трябва да бъде променена на _WinMain @ 16 . Също така, променете ret при края на процедурата до ret 16 :
текстглобален
:
mov eax, 0
ret 16
Инсталиране на софтуера
Първо трябва да инсталирате //ccm.net/download/download 1025 NASM. Дръжте някъде архив, тъй като ще бъде използван по-късно.Най-трудната стъпка ще бъде инсталирането на MinGW, която е безплатна среда за разработка на Windows:
Започнете, като изберете най-новата версия на MingGW от AZ. Стартирайте инсталационната програма, но не актуализирайте на този етап. Оставете всички опции, избрани по подразбиране, и изчакайте да се инсталира.
Сега трябва да вмъкнете NASM в средата за разработка MinGW. Разопаковайте архива на NASM. Трябва да получите папка, съдържаща, наред с други неща, файл с име nasm.exe . Копирайте този файл в директорията C: MinGW bin .
Създаване на изходен файл
Подобно на Linux, не е необходимо да използвате конкретен издател, за да създадете изходен файл за NASM. Можете да използвате Notepad . Но имайте предвид, че тя има тенденция да добавя разширение .txt към файловете, които създава. За да премахнете всяка неяснота, препоръчваме ви да преглеждате разширенията на файловете си.Във всеки случай избягвайте текстообработващи програми като Word или WordPad .
Ако желаете, можете да използвате и редактор, който използва NASM синтаксис, като NasMEdit IDE .
Уверете се, че запазете файла си с разширение .asm .
Сглобяване на изходния файл
Отворете командния прозорец, като отидете в Start> Run и напишете cmd.exeС помощта на командата cd отидете в папката, съдържаща вашия изходен файл. След като сте в тази директория, съберете изходния си файл ( test.asm ) с тази команда:
nasm -f win32 test.asm -o test.o
Вече сте създали обектен файл. Следващата стъпка ще бъде да я превърнем в изпълним файл.
Създаване и изпълнение на програмата
От командния прозорец въведете последната команда, за да създадете изпълнимия файл:ld test.o -o test.exe
Изображение: © Alexandr Pakhnyushchyy - Shutterstock.com