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

Как процессор различает что есть символ, что число, а что команда? Ведь все в двоичном коде

Процессор имеет дело с командами и данными которые в обоих случаях имеют двоичное представление. Все что загружается в процессор по адресу, содержащемуся в программном счётчике, является командой для процессора. А в команде уже определённая часть двоичной информации может быть данными или ссылками на данные. Есть разные архитектуры, где память для команд и для данных имеет раздельное местоположение. Но может быть и (как в архитектуре Вашего компьютера) иметь общее пространство памяти. А это значит при определённых условиях Ваши данные, которые Вы идентифицируете как "символы" и "числа", могут быть представлены для процессора как набор команд. Просто человеческой программной логики в этих командах уже не будет.
Стас Шуман
Стас Шуман
76 473
Лучший ответ
А он и не различает. Какая команда поступила ему, такую и выполняет.
Коды ведь тоже разные.
Ескелдi Куандык
Ескелдi Куандык
51 306
На самом деле процессору все равно. Он переходит к очередной команде в двоичном коде, пытается ее декодировать (то есть определиться с тем, что это за команда и что нужно делать) . В зависимости от команды дальше он считывает в двоичном коде нечто, и считает что это число, или символ.. . или следующая команда. А так ему все равно что пытаться выполнить, и если есть неправильная команда, которая заставляет его перейти к выполнению, скажем, числа или символа, то вот тут-то "Программа выполнила недопустимую операцию и будет закрыта"
Никак.
Сергей Збырня
Сергей Збырня
5 551