Рассматривается процесс установки пакета программ GNU Compiler Collection (GCC) для работы с ассемблером GNU Assembler (GAS).
Приводится краткое описание следующих программ:
as - ASsembler - ассемблер (транслятор языка ассемблера) - выполняет ассемблирование, т.е переводит (транслирует) язык ассемблера на язык машинных команд. На входе принимает текстовый файл, содержащий программу на языке ассемблера (который имеет расширение .asm или .s), на выходе выдает объектный файл (с расширением .o или .obj) - двоичный (бинарный) файл, который нельзя прочитать в текстовом виде
as test.s -o test.o
//-------------------------------
objdump - Дизассемблер - Выполняет трансляцию объектных и исполняемых файлов с языка машинных команд на язык ассемблера.
objdump -d test.o
//-------------------------------
ld - Link eDitor - компоновщик (линкер, редактор связей) - выполняет сборку исполняемого файла из одного или нескольких объектных файлов в специальном формате, для конкретной операционной системы.
Формат исполняемых файлов для Linux называется
ELF - Executable and Linkable Format
для Windows - PE (Portable Executable)
ld test.o -o test.exe
Запустить файл test.exe:
./test.exe
//------------------------------
gcc - программа, одноимённая с названием пакета, включает в себя:
Транслятор языка Си (переводит код с языка Си на язык ассемблера)
Ассемблер
Компоновщик
//------------------------------
gdb - GNU Debugger - отладчик, позволяет анализировать исполняемый файл программы путём дизассемблирования и пошагового выполнения программы с просмотром значений регистров и содержимого оперативной памяти
//--------------------------------
hexdump - позволяет вывести содержимое двоичного файла (объектного или исполняемого) в шестнадцатеричном представлении
hexdump -C test.exe
//---------------------------------
readelf - позволяет вывести информацию о ELF - файле (Заголовки, таблица символов, сегменты и др.)
Посмотреть заголовки исполняемого файла
readelf -h test.exe