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