Каждый процессор понимает свой набор машинных команд (систему команд, ISA). Команды делятся на группы: пересылки данных (загрузить из памяти в регистр, записать обратно), арифметика и логика (сложить, вычесть, И, ИЛИ, сдвиг), сравнения и работа с флагами, переходы (безусловные и условные — «перейти, если ноль/перенос»), вызовы подпрограмм и возвраты, работа со стеком, управление (остановка, сброс, разрешение прерываний).
Машинный код — это числа (байты опкодов). Чтобы людям было удобно, придумали ассемблер: каждой команде соответствует мнемоника-сокращение, например ADD (сложить), MOV (переслать), JMP (перейти). Ассемблер-транслятор превращает мнемоники обратно в байты.