PutsF: Альтернатива printf для C
PutsF - альтернатива printf Это небольшая библиотека на ассемблере (компилятор FASM), реализация printf из stdlib, для C
Установка Эта программа есть в моем гитхаб репозитории
Код написан для 64 битной linux системы (ELF 64). Если у вас другая, вам придется редактировать код, указывать другой формат, если у вас и разрядность другая - то изменять имена регистров.
Также у вас должен быть установлен gnu-линковщик, fasm (flat assembly) и система сборки make.
Что такое ассемблер
Что такое ассемблер? Язык ассемблера (от англ. assembly language) — это императивный язык низкого уровня, который используется для представления команд CPU. При этом команды процессора остаются читабельными для программиста. Под термином “ассемблер” также может подразумеваться ПО, которое преобразует соответствующий исходный код в машинный код. Обратный процесс (конвертация машинного кода в ассемблер-код) выполняет дизассемблер.
Простыми словами, язык ассемблера — это низкоуровневый язык, позволяющий программисту обращаться непосредственно к процессору машины.
Как работает язык ассемблера Это самый низкоуровневый человекочитаемый язык программирования.
Основные инструкции ассемблера x86_64
Шпаргалка по основным инструкциям ассемблера x86/x64 В прошлой статье мы написали наше первое hello world приложение на асме, научились его компилировать и отлаживать, а также узнали, как делать системные вызовы в Linux. Сегодня же мы познакомимся непосредственно с ассемблерными инструкциями, понятием регистров, стека и вот этого всего. Ассемблеры для архитектур x86 (a.k.a i386) и x64 (a.k.a amd64) очень похожи, в связи с чем нет смысла рассматривать их в отдельных статьях. Притом акцент я постараюсь делать на x64, попутно отмечая отличия от x86, если они есть.
Отладка и программирование на ассемблере
Написание и отладка кода на ассемблере x86/x64 в Linux В продолжение поста об языке ассемблера на моем другом сайте я предлагаю вам прочитать эту статью. Если вы не знаете, что такое ассемблер, то советую сначала прочитать ту статью.
Отмечу, что в рамках поста мы сосредоточимся на вопросе компиляции и отладки программ на ассемблере. Сам же язык ассемблера заслуживает отдельного большого поста, а то и серии постов.
Если вы знаете ассемблер, то любая программа для вас — open source.