Я прочитал, что ассемблер не нужно напрямую компилировать в двоичный файл и он может работать как есть.
если это правда, как это возможно? как машина понимает слова и цифры напрямую?
Предлагаю вам прочитать эту статью, в которой подробно описан процесс компиляции кода на языке Си.Это прояснит некоторые вещи: https://medium.com/@minas_anton/stages-of-compilation-process-8ac4ead4a21.
Код сборки все еще должен быть обработан для получения машинного кода, просто этот процесс обычно не упоминается как компиляция.
Это не правда. Код сборки должен быть собран в машинный код, прежде чем его можно будет запустить напрямую.