Данные на диске хранятся в двоичном виде. Даже текстовые файлы на диске выглядят в виде нулей и единиц. Точно так же выглядит и любая программа, только ее называют машинным кодом. Давайте познакомимся с ним немного поближе.
Любая программа представляет собой последовательность команд. Эти команды называются процессорными инструкциями. В точном соответствии этим инструкциям процессор определяет, что и как ему нужно делать. Когда вы запускаете программу, компьютер загружает ее машинный код в оперативную память и начинает выполнять команду за командой. Наша задача как программистов написать эти инструкции таким образом, чтобы компьютер понял, что мы от него хотим.
Реальная программа, которую выполняет компьютер, представляет собой последовательность единиц и нулей. Такую последовательность называют машинным языком. Человек не способен эффективно думать единицами и нулями. Для нас легче воспринимается осмысленный текст, а не сумасшедшие числа в двоичной системе исчисления, с которой мы не привыкли работать. Например, команда сложения двух
регистров в шестнадцатеричной системе выглядит так:
$ОЗСЗ
Это мало о чем говорит, и запомнить такую команду очень тяжело. Намного проще написать "сложить число 1 и число 2". Первое время программисты писали программы в машинных кодах, пока кому- то не пришла в голову идея: "Почему бы не писать текст программы на понятном языке, а потом заставлять компьютер переводить этот текст в машинный код?" Идея действительно заслуживала внимания. Так появился первый компилятор — программа, которая переводила текст программ в машинный код.
Таким образом, пользователи стали писать программы более осмысленно, а всю рутинную работу по переводу текста программы в машинный код возложили на сам компьютер.
Здесь настало время сделать паузу и рассказать вам небольшую историю языков программирования. Она достаточно интересна и поучительна. Ну а потом мы продолжим изучение принципов работы компьютера и познакомимся со структурой процессора и его работой при выполнении программы.