Como funcionam as linguagens assembly?

Estou muito curioso sobre como as linguagens assembly funcionam - continuo sendo geral, porque não estou falando apenas do intel x86 assembly (embora seja o único com o qual estou remotamente familiarizado). Para ser um pouco mais claro ...

mov %eax,%ebx

Como o computador sabe o que uma instrução como "mov" faz? Como ele sabe que eax e ebx são registradores? As pessoas escrevem gramáticas para linguagens assembly? Como eles escrevem isso? Eu imagino que nada esteja impedindo alguém de escrever uma linguagem assembly que substitua omov instrução com algo comodog ouhorse etc., (obviamente isso não é semântico)

Desculpe se isso não estiver muito claro, mas é algo que acho um pouco intrigante - sei que não pode ser mágico, mas não consigo ver como funciona. Eu procurei algumas coisas na wikipedia, mas tudo o que parece dizer é que ele se traduz em código de máquina. Bem, o que estou perguntando é como essa tradução ocorre, suponh

Pensamentos

EDIT: Eu sei que esse material é definido em manuais de referência e outras coisas, acho que o que eu quero saber é como você diz ao seu processador "Ok, quando você vêmov você vai fazer isso ". Eu também sei que é uma sequência de provavelmente uma tonelada de portas lógicas ... mas deve haver alguma maneira de o processador reconhecer que émov é o símbolo que significa "use essas portas lógicas"

questionAnswers(5)

yourAnswerToTheQuestion