Курсовая работа

Курсовая работа

Арсений Огузов
  1. Задача
  2. Основные принципы архитектуры
  3. Эмулятор ЭВМ
  4. Интерфейс
  5. Выполнение программы
  6. Возможные ошибки
  7. Примеры
  8. Ссылка


Задача

Разработать эмулятор вычислительной машины в архитектуре фон Неймана

Основные принципы архитектуры

Принцип однородности:

Команды и данные хранятся в одной и той же памяти и внешне в памяти неразличимы. Распознать их можно только по способу использования; то есть одно и то же значение в ячейке памяти может использоваться и как данные, и как команда, и как адрес в зависимости лишь от способа обращения к нему.


Принцип адресности:

Структурно основная память состоит из пронумерованных ячеек, причём процессору в произвольный момент доступна любая ячейка. Двоичные коды команд и данных разделяются на единицы информации, называемые словами, и хранятся в ячейках памяти, а для доступа к ним используются номера соответствующих ячеек — адреса.


Принцип программного управления:

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


Принцип двоичного кодирования:

Согласно этому принципу, вся информация, как данные, так и команды, кодируются двоичными цифрами 0 и 1. Каждый тип информации представляется двоичной последовательностью и имеет свой формат. 


Эмулятор ЭВМ

Команды эмулятора состоят из самих команд и операндов. На операнд

для адреса переменной отводится 5 бит, для операнда значения – 8.

Операнды подаются в двоичном формате.


Присваивание MOV [адрес] [значение]

Присваивает ячейке памяти по адресу, указанному в левом операнде,

двоичное значение правого операнда.


Сложение ADD [адрес] [адрес] [адрес]

Складывает значения операндов по адресам, указанным в первых двух

операндах, результат записывает по адресу третьего операнда.


Умножение MUL [адрес] [адрес] [адрес]

Умножает значения операндов по адресам, указанным в первых двух

операндах, результат записывает по адресу третьего операнда.


Деление DIV [адрес] [адрес] [адрес]

Делит значения операндов по адресам, указанным в первых двух

операндах, результат записывает по адресу третьего операнда.


Сравнение CMP [адрес] [адрес] [адрес]

Сравнивает операнд по левому адрес с операндом по правому адресу.

Если левый операнд больше, записывает по адресу третьего операнда 1

(00000001), если меньше – 2 (00000010), если равен – 3 (00000011).


Условный переход JMP [адрес] [адрес] [адрес]

Если значение первого операнда равно 0, то переходит на строку

программы, номер которой указан по адресу во втором операнде, иначе

переходит на строку под номером указанном в третьем операнде.


Вывод PRT [адрес]

Выводит на экран значение ячейки с указанным адресом.


Интерфейс

Написан на HTML/CSS

Состоит из поля ввода, поля вывода и кнопок управления

Функции интерфейса:

run()

clearInput()

error()

print()


Выполнение программы

Алгоритм представленный блок-схемой

Возможные ошибки

Не двоичный формат

Бесконечный цикл

Несуществующая команда

Переполнение памяти

Интервал значений

Количество параметров для функции

Примеры

Возведение в квадрат

Сложение двух чисел

(a+b)^2

Ссылка на программу

http://psy667.ru/js_computer


Report Page