Как компьютер различает, является ли двоичный шаблон инструкцией или просто числом?

Я читаю книгу "Организация компьютеров и встраиваемые системы" Хамахера, и у меня возникает вопрос: "Как компьютер различает, является ли двоичный шаблон инструкцией или просто числом?"

Может ли кто-нибудь помочь мне понять эту концепцию?

2 ответа

Решение

Процессор фон Неймана (практически любой процессор) не может различить код и данные в памяти. То, на что указывает указатель инструкций CPU, будет загружено в декодер инструкций в виде инструкции. Если это недопустимая инструкция, это вызовет исключение в CPU.

Это позволяет программе создавать новый исполняемый код в памяти или даже изменять свой собственный код. С другой стороны, это позволяет проводить много атак с использованием кода.

То, как компьютер различает инструкции и цифры, просто зависит от того, что читает данные и где. Например, простой арифметико-логический блок (АЛУ) будет включать вход для выполняемой операции и два входа для операндов. Данные, поступающие в порты операндов, читаются как числа, тогда как данные, поступающие на вход оператора, читаются как инструкция.

Все зависит от того, какой блок компьютерной архитектуры читает данные, и от того, какой вход этот блок читает.

Другие вопросы по тегам