Мне очень любопытно, как работают языки ассемблера - я остаюсь общим, потому что я говорю не только о сборке Intel x86 (хотя это единственная, с которой я хотя бы отдаленно знаком с участием). Чтобы быть немного более ясным ...
mov %eax,%ebx
Как компьютер узнает, что делает инструкция типа "mov"? Как он узнает, что eax и ebx являются регистрами? Пишут ли люди грамматики для языков ассемблера? Как они это пишут? Я полагаю, ничто не мешает кому-то написать язык ассемблера, который заменяет инструкцию mov
чем-то вроде dog
или horse
и т. Д. (Очевидно, что это не семантика) вообще)
Извините, если это не слишком понятно, но я нахожу это немного озадачивающим - я знаю, что это не может быть магией, но я не понимаю, как это работает. Я поискал кое-что в Википедии, но все, что он, кажется, говорит, это переводит это в машинный код, ну, я спрашиваю, как происходит этот перевод, я полагаю.
Мысли?
РЕДАКТИРОВАТЬ: Я понимаю, что этот материал описан в справочных руководствах и прочем. Я думаю, что я хочу знать, как вы говорите своему процессору: «Хорошо, когда вы увидите mov
, вы сделаете это». Я также знаю, что это последовательность, вероятно, тонны логических вентилей ... но должен быть какой-то способ, чтобы процессор распознал, что mov
- это символ, который означает "использовать эти логические вентили"