Модель для изучения компьютера

Современные IBM-совместимые компьютеры довольно сложны; при их реализации используется множество самых разнообразных принципов и технологий. Поэтому для понимания даже наиболее простых идей их работы требуется знание достаточно большого количества технических деталей.

Альтернативным способом изучения является метод моделирования. Его главная идея состоит в том, чтобы выявить все наиболее важные черты моделируемого объекта и отразить их в модели. Таким образом, модель оказывается «очищенной» от всех второстепенных деталей, зато в главном ведет себя также как и изучаемый объект. Очевидно, что изучение модели легче и, в то же время, позволяет отчетливо выделить все наиболее существенные черты.

Воспользуемся для знакомства с принципами выполнения программ некоторой простой моделью современного компьютера. Наша модель будет состоять из процессора и оперативной памяти; устройства ввода/вывода для простоты рассматривать не будем.

Процессор в такой модели выполняет наиболее простые операции (в основном арифметические). В его состав входят 4 регистра общего назначения R0-R3, а также программный счетчик PC (Program Counter).

Программа вычислений хранится в небольшом ОЗУ размером 256 байт, пронумерованных в шестнадцатеричной системе от 0 до FF.

Любая команда нашего процессора состоит из трех частей:

· кода операции (КОП), образующегося из 8 двоичных разрядов (или 2 шестнадцатеричных цифр), и определяющего, какую именно операцию необходимо выполнить над данными;

· двух операндов (ОП1 и ОП2), каждый из одной шестнадцатеричной цифры, кодирующей, где взять данные.

Наш учебный процессор имеет следующую систему команд:

КОП ОП1 ОП2 ПОЯСНЕНИЯ
      нет операции
  X X оп1 ==> оп2
  X X оп2 + оп1 ==> оп2
  X X оп2 — оп1 ==> оп2
  X X оп2 * оп1 ==> оп2
  X X оп2 / оп1 ==> оп2 (деление нацело)
0F     останов

В приведенной выше таблице вместо операндов, обозначенных символом X, можно подставить номер одного из регистров процессора от 0 до 3. В некоторых случаях может использоваться код D («данные»), который говорит о том, что операндом является число, расположенное в следующем слове команды.

Как нетрудно заметить, каждая команда состоит из 4 шестнадцатеричных цифр, т.е. из двух байт. В отдельных случаях, когда указан код операнда D, длина команды увеличивается вдвое. Приведем примеры команд, которые должны существенно облегчить понимание сказанного выше о структуре команд.

Код команды Содержание Комментарии
  R1 ==> R2 значение из регистра R1 копируем в R2
  R3 ==> R0 значение из R3 копируем в R0
01D2 0003 3 ==> R2 в регистр R2 заносится константа 3, которая следует за командой
  R2 + R1 ==> R2 сложить числа, находящиеся в указанных регистрах, и записать результат во второй из них
02D2 0001 R2 + 1 ==> R2 увеличить R2 на1
  R2 — R1 ==> R2 из R2 вычесть R1, и записать результат в R2
02D2 0001 R2 — 1 ==> R2 уменьшить R2 на1
0F00 стоп прекратить выполнение программы

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: