Данному образовательному сайту пришлось несколько раз менять свое имя. С 2022 года доступ к нему обеспечивается по URL
emc.orgfree.com

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


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



Модели (software):

"Е14" (parallel !!!)
"S9PU" (parallel)

Модели (hardware):






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

Учебная модель fN8: система команд

Процессор

Процессор содержит ряд программно-доступных объектов, расположенных вне адресных пространств:

  • Acc[7:0] – аккумулятор;
  • PCL[7:0] – счётчик команд;
  • SPL[7:0] – указатель стека;
  • SR[7:0] – сегментный регистр:
    • SR[1:0] – сегмент кода;
    • SR[3:2] – сегмент данных;
    • SR[5:4] – сегмент стека.
  • PSW[7:0] – регистр слова состояния процессора:
    • PSW[0] = Z – нулевой результат;
    • PSW[1] = N – отрицательный результат;
    • PSW[2] = O – арифметическое переполнение;
    • PSW[3] = AC – дополнительный перенос;
    • PSW[4] = C – перенос;
    • PSW[5] = I – разрешение прерывания.

Кроме того, в окне обозревателя процессора отображается состояние двух внутренних регистров процессора: регистра команд – CR[15:0], отображающий код текущей команды и регистр данных – DR[7:0], предназначенный для второго операнда бинарной операции.

Система команд

Система команд fN8 включает в себя следующие операции: арифметические и логические бинарные операции над аккумулятором (Acc) и ячейкой памяти или регистром с размещением результата в Acc, унарные арифметические (INC, DEC) и логические (инверсия), команды управления битами, команды пересылки, ввода/вывода, передачи управления (включая вызовы подпрограмм), управление прерываниями и другие.

Адресация в командах с ячейками ОЗУ – прямая и непосредственная. В регистровых командах – прямая, косвенная и несколько вариантов автоиндексной адресации. Адресация в командах ввода/вывода – только прямая. Кроме того, возможна адресация отдельных битов в любой ячейке сегмента данных ОЗУ или в любом РВУ. Любой бит в этих байтах может быть установлен или сброшен, кроме того по любому из этих битов можно осуществить условный пропуск следующей команды.

Все команды имеют размер 16 бит. Большинство команд при этом являются одноадресными.

Таблицу команд смотрите здесь.

Директивы компилятора

При написании программы на языке Ассемблер можно пользоваться следующими директивами компилятора:

.c <сегмент> – выбирает текущий сегмент компиляции;

.org <адрес> – изменяет текущий адрес компиляции;

.db <байт, байт, ... байт> – загрузка констант размером в 1 байт в текущий сегмент начиная с текущего адреса компиляции;

.dw <слово, метка, ... слово> – загрузка констант размером в 2 байта в текущий сегмент начиная с текущего адреса компиляции.

В процессе компиляции возможна загрузка констант в сегмент данных. Например, приведённый ниже фрагмент позволяет загрузить в ячейки 0 .. 9 сегмента данных таблицу семисегментных кодов десятичных цифр:

.c 2
.org 0
.db  0x3F, 0x06, 0x5B, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x77

Использование этих директив позволяет изменить установленную по умолчанию точку старта программы – 0x10, например, на адрес 0х20 (a). Ещё проще поставить в нужном месте метку, например, Start: и объявить её точкой старта (b).

a)
.org 0
.db 0x20, 0x0
b)
.org 0
.dw Start

Эти же директивы позволяют автоматизировать заполнение таблицы векторов прерываний. Таблица векторов прерываний в fN8 размещается в младших адресах памяти 0х000 – 0х00F, каждый вектор занимает два байта. Вектор 0 определяет точку старта (по умолчанию - 0x010), вектора 1 .. 7 могут присваиваться подключаемым к fN8 внешним устройствам.

Если поставить метки в начале всех обработчиков прерываний, то загрузка таблицы векторов прерываний может выглядеть следующим образом (для случая, когда вектора определяются последовательно):

.org 2
.dw wu1, wu2, wu3, . . .
где wui – метка начала обработчика прерывания по i-му вектору.

© Жмакин Анатолий Петрович (Курский государственный университет). anatoly.zhmakin@gmail.com

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


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


Free Web Hosting