Не совсем понятно, что именно вас интересует. Однажды люди притомились писать программы машинным кодом и придумали для каждого опкода процессора мнемокод. Так появился язык ассемблера. Потом люди притомились вручную переводить из мнемокодов в опкоды и написали для этого программу.