Данному образовательному сайту пришлось несколько раз менять свое имя. С 2011 года доступ к нему обеспечивается по URL
http://educomp.runnet.ru

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)

Модели (hardware):






Награды сайта
Награды сайта

Данная задача была предложена на соревновании по программированию среди школьников Нью-Йорка и близлежащих районов - см. материал на сайте, задача F: "Microprocessor Simulation". "Вольный" (в смысле не дословный) перевод с английского выполнен автором данного сайта.

Задание:
Написать программу, которая имитирует работу следующего простого микропроцессора.

  • Каждое слово состоит из 4-х бит.
  • Адреса состоят из двух слов, причем старшее всегда стоит первым.
  • Память состоит из 256 слов.
  • Имеется два аккумулятора - A и B, в каждом может хранится одно слово.
  • Существует 9 кодов инструкций. Каждая занимает как минимум одно слово, содержащее код инструкции. 4 инструкции имеют аргументы, требующие 2 дополнительных слова.

Для записи каждой из 4-битной цифры используем традиционные шестнадцатиричные цифры.

А вот система инструкций:
КодСловОписание
03 LD: загрузить в аккумулятор A содержимое ячейки с указанным адресом
13 ST: сохранить содержимое аккумулятора A в ячейку с указанным адресом
21 SWP: обмен содержимого аккумуляторов A и B
31 ADD: сложить содержимого аккумуляторов A и B;
младшую часть суммы поместить в A, старшую - в B
41 INC: увеличить содержимое аккумулятора A на 1;
допускается переполнение: F + 1 = 0
51 DEC: уменьшить содержимое аккумулятора A на 1;
допускается переполнение: 0 - 1 = F
63 BZ: если аккумулятор A = 0, происходит переход по указанному адресу;
иначе переход игнорируется
73 BR: безусловный переход по указанному адресу
81 STP: стоп (выполнение программы прекращается)

Микропроцессор всегда выполняет команды по порядку начиная с нулевого адреса, за исключением переходов).

Примеры программ:
ПрограммаОписание
01A8Извлечь в аккумулятор A содержимое ячейки 1A и остановиться
01A512F8Извлечь в A содержимое ячейки 1A, увеличить на 1,
сохранить в ячейку 2F и остановиться

Входная информация представляет собой несколько строк длиной ровно 256 символов, причем первый символ соответствует адресу 00, а последний - FF. Результат выполнения программы выводится в таком же формате (примеры см. на оригинальном сайте) .


© Оформление Web-страницы Е.А.Еремин, 2002


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com