Другие языки программирования и технологии

Вопрос по основам машинного кода и бинарного кода. Как это работает в своей основе?

Всем привет. Такой вопрос, хочу разобраться для себя, пока все еще не понимаю. Бинарный код состоит из 0 и 1, понятно. Машинный код группирует в 4 биты или 16 биты и читает это.
Так вот вопрос, сам по себе "Бинарный Код" имеет заранее заданные значения? Или Бинарный Код сам по себе это бессмысленный набор чисел и только машинный код его начинает систематизировать? То есть, почему последовательность 0010 имеет именно такое определенное значение а не какое то другое? Или когда создавался бинарный код уже изначально в него задали условный "алфавит" и уже из этих условых "букв" машинный код собирает в "слова" а слова в "предложения"?
Пожалуйста, без сложных терминов, своими словами, что бы появилось понимание, на это работает в своей основе.
Сергей
Сергей
1 754
Если сильно упрощать, то...

Каждый процессор имеет зашитый в "железо" набор команд (сложение, вычитание, сравнение и т. д.), каждая команда кодируется определённым числом, записанным в один байт или несколько последовательных байтов (в современных процессорах коды разных команд могут занимать разное кол-во байтов). Причём у каждой процессорной архитектуры свой набор команд и свой набор кодов этих команд. Это и есть машинный код.

В процессоре есть регистр адреса команды. Работа процессора состоит в том, чтобы взять адрес из этого регистра, прочитать код команды, находящийся в оперативной памяти по этому адресу, выполнить эту команду, увеличить значение регистра адреса команды на длину кода выполненной команды - чтобы адрес в регистре указывал на следующую команду.
Александр Лавренчук
Александр Лавренчук
86 940
Лучший ответ
Машинный код - это бинарный код, в котором закодированы обозначения команд процессора. Какими сочетаниями битов что кодируется - это решали разработчики процессора. Могли решить так, могли иначе.
Сергей Так сам по себе бинарный код бессмысленный набор чисел без машинного кода?
"Машинный код группирует в 4 биты или 16 биты и читает это" где вы этот идиотизм вычитали?
Господи, какая каша...
Если не вникать в терминологию, то машинный код - это некоторые данные, предназначенные для передачи процессору в качестве инструкций, которые нужно выполнить. Он определённые последовательности 0 и 1 трактует как определённые инструкции и производит соответствующие действия. Например, процессоры архитектуры x86 при получении инструкции 0x31c0 (0011000111000000) обнуляют регистр ax.
Вот, может, это поможет...
http://nandgame.com/
..
...only_One ...
51 164
Сергей То есть, машинный код - это инструкция. Тогда бинарный код сам по себе инструкции не содержит?
Никто ничего не формирует 4 и 16 это для удобства восприятия. Бинарный код - это способ представления информации в виде 0 и 1. Машинный код - это набор команд для конкретного процессора. Машинный код может быть представлен в виде двоичного кода. Это получается путем компиляции программ. Т. к. все программы от ассемблера до визуальных сред четко структурированы и имеют определенный набор команд, операторов, объектов, то и бинарный код имеет все эти структурные составляющие, но только в виде 0 и 1.
Без процессора это все просто набор чисел...
это - одно и то же: некая последовательность, которая понятна процессору и исполняется им.
firmware, кароч. "прошивка"