Ассемблер.
Программер
Ассемблер или сборщик - один из первых языков программирования, наиболее близко приближенным к аппаратной части компьютера. По сути описывает систему команд процессору, который тот и выполняет.
Эти команды называются мнемоники.
--> MOD - деление по модулю. Даёт остаток.
--> SHL, SHR - сдвиг операнда влево, вправо.
--> OFFSET - оператор получения смещения адреса относительно начала сегмента.
--> AND, OR, XOR - операции И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ.
--> .CODE - определяет начало кодового сегмента.
--> .DATA - определяет начало сегмента данных.
--> END - обозначает конец программы.
--> LABEL - определяет метку соответствующего типа.
--> .STACK - определяет размер стека.
--> MOV - перемещение операнда.

Ближе ассемблера только двоичный код. Программировать только на одном двоичном коде, крайне затруднительно. Поэтому и придумали ассемблер, для облегчения написания программного кода. Программировать на ассемблере можно и сейчас. Нет языка более близко приближенного к компьютеру, чем ассемблер. Подчас он творит волшебство. Но если вы горите желанием начать программировать на ассемблере, сложное приложение, боюсь вас огорчить. Вы напишете тонны строк кода, проделаете гигантскую работу с небольшим результатом. Поэтому и придумали языки высокого уровня - для облегчения труда программиста.
Ассемблер хорошо подойдет тем, кто хочет доскональнейшим образом разобраться в устройстве компьютера.
Имейте ввиду, что под каждый процессор существует свой тип ассемблера - точно отражающий систему команд и структуру процессора.