Skip to content

Практическая работа №1

Исследование выполнения программы и организации памяти в ЭВМ Е14

Section titled “Исследование выполнения программы и организации памяти в ЭВМ Е14”

Цель работы: изучить выполнение программы процессором учебной ЭВМ Е14, исследовать изменение содержимого регистров и памяти, а также получить практические навыки разработки простой программы на языке ассемблера Е14.


Основные теоретические положения

Section titled “Основные теоретические положения”

Е14 — учебная модель многопроцессорной ЭВМ, предназначенная для изучения принципов организации процессоров, памяти и параллельных вычислений.

В данной работе используется только CPU, без использования периферийных процессоров PPU.

Процессор содержит регистры, используемые для хранения данных и промежуточных результатов вычислений. Особое значение имеет счётчик команд PC, определяющий адрес следующей выполняемой команды.

  • R0, R1, R2, R3 — регистры общего назначения;
  • PC — счётчик команд;
  • SP — указатель стека.
КомандаНазначение
MOVкопирование значения
ADDсложение
SUBвычитание
BNEпереход, если результат не равен нулю
HLTостановка программы

Примеры:

mov #10,r0 ; записывает 10 в R0
add #1,r0 ; увеличивает R0 на 1
sub #1,r0 ; уменьшает R0 на 1
bne loop ; переход на метку loop, если результат не равен 0
DATA:
dw 10
dw 20
dw 30

Косвенная адресация — обращение к памяти по адресу, хранящемуся в регистре:

add (r1),r2

Процессор обращается к памяти по адресу, хранящемуся в R1, и прибавляет полученное значение к R2.


Задания для выполнения

Section titled “Задания для выполнения”

Задание 1. Запуск и исследование готовой программы

Section titled “Задание 1. Запуск и исследование готовой программы”

Загрузите в Е14 программу суммирования массива.

N=10
mov #N,r0
mov #T,r1
mov #0,r2
loop:
add (r1),r2
add #2,r1
sub #1,r0
bne loop
mov r2,s
hlt
s: rw 1
T:
dw 1
dw 2
dw 3
dw 4
dw 5
dw 6
dw 7
dw 8
dw 9
dw 10

Ожидаемый результат: 55.

ШагКомандаR0R1R2
1mov #N,r0
2mov #T,r1
3mov #0,r2
4add (r1),r2

Ответьте (устно или одной фразой в отчёте):

  1. Для чего используется R0, R1, R2?
  2. Почему R1 изменяется на 2 за шаг?
  3. Как изменяется PC при выполнении программы?

Найдите в памяти адрес начала массива T и адрес ячейки s, где хранится результат.

Ответьте одной фразой: чем данные программы отличаются от самой программы, размещённой в памяти?


Задание 2. Изменение исходных данных

Section titled “Задание 2. Изменение исходных данных”

Измените массив и константу:

T:
dw 10
dw 20
dw 30
dw 40
dw 50
N=5

Рассчитайте ожидаемый результат самостоятельно, затем запустите программу и сравните.

Алгоритм программы менять нельзя.

Ответьте: почему при изменении исходных данных не потребовалось менять основную часть программы?


Задание 3. Самостоятельная разработка программы

Section titled “Задание 3. Самостоятельная разработка программы”

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

result = 0
пока второй множитель не равен 0:
result = result + первое число
второй множитель = второй множитель - 1

Пример: 3 × 4 = 3 + 3 + 3 + 3 = 12.

Требования:

  • первый множитель — в отдельном регистре;
  • второй множитель — в отдельном регистре;
  • отдельный регистр для результата;
  • организован цикл;
  • результат сохранён в памяти;
  • программа завершается HLT.

Проверочные данные: A = 7, B = 6 → ожидаемый результат 42.

Если не успеваете полностью отладить программу за отведённое время — доведите до рабочего состояния дома, отчёт по трассировке (3.1) можно оформить по последней рабочей версии.


Задание 3.1. Исследование своей программы

Section titled “Задание 3.1. Исследование своей программы”

Выполните программу пошагово, зафиксируйте только первую итерацию цикла:

ИтерацияМножительСчётчикРезультат
Начало
1

Определите:

  1. какая команда изменяет результат;
  2. какая команда изменяет счётчик;
  3. при каком условии цикл прекращает работу.

Задание 4. Связь с работой операционной системы

Section titled “Задание 4. Связь с работой операционной системы”

Представим, что разработанная программа — это процесс, выполняемый ОС. Во время работы ОС должна временно остановить программу, чтобы передать процессор другой задаче.

Ответьте:

  1. Какой регистр указывает, с какой команды продолжить выполнение?
  2. Почему недостаточно сохранить только PC?
  3. Что произойдёт, если потеряется значение регистра с результатом?

Заполните таблицу:

ЭлементНужно сохранить?Причина
PC
регистр с результатом
регистр со счётчиком
регистр с исходным числом
программа в памяти
исходные данные

Задание 5. Тестирование

Section titled “Задание 5. Тестирование”

Проверьте программу на трёх наборах данных (вместо пяти):

ABОжидаемый результатФактический результат
3412
7642
0100

Граничный случай A=0 проверяет, что программа корректно завершает цикл сразу, без «лишних» проходов.


Домашнее / бонусное задание

Section titled “Домашнее / бонусное задание”

Выполняется вне пары — теми, кто закончил раньше, или дома.

  1. Какую функцию выполняет регистр PC?
  2. Для чего используются регистры общего назначения?
  3. Как программа обращается к данным в памяти?
  4. Чем программа отличается от данных, размещённых в памяти?
  5. Для чего используется команда BNE?
  6. Почему цикл позволяет реализовать умножение без отдельной команды умножения?
  7. Какие данные необходимо сохранить при временной остановке выполняющегося процесса?
  8. Почему сохранение только PC недостаточно для продолжения работы программы?
  9. Как связаны процессор, память и выполняемая программа?
  10. Зачем операционной системе управлять состоянием выполняющихся программ?

Дополнительные задания

Section titled “Дополнительные задания”
  1. Измените программу умножения так, чтобы она вычисляла степень числа методом последовательного умножения.
  2. Добавьте сохранение промежуточного результата в отдельную ячейку памяти.
  3. Измените программу так, чтобы она выполняла вычисление для трёх различных наборов данных без повторного написания алгоритма.
  4. Протестируйте программу на оставшихся наборах данных из полной таблицы: 10 × 5, 1 × 20.

Рекомендуемые материалы

Section titled “Рекомендуемые материалы”
  1. Учебные модели компьютера. Е14 — описание модели и примеры программ.
  2. Еремин Е. А. Материалы по учебным моделям ЭВМ.
  3. Документация к ассемблеру и системе команд Е14.