РГРТА
Кафедра ЭВМ
Работа с памятью.
Подпрограммы и циклы.
Выполнили:
Козлов Е.П., Хамидулин А.Р.
(бригада №4)
Проверил:
Волковыский В.Л.
Рязань 2001
Цель работы: изучение структуры и функций блока микропрограммного
управления, микропрограммирование обработки данных, записанных в ОП, с использованием циклов и подпрограмм.
Задание: определить номера H1 и H2 первых элементов двух массивов, равных M и N соответственно, и найти сумму этих элементов. Определение номера элемента оформить как подпрограмму.
Исходные данные и результаты:
Основная микропрограмма начинается с адреса 0, подпрограмма с адреса 19.
Массив A из четырех элементов [A = (1 2 3 4)] записан по адресу 32.
Массив B из четырех элементов [B = (5 6 7 8)] записан по адресу 64.
Число M (2) в регистре SI, число N (7) в регистре DI.
Назначение регистров, используемых в подпрограмме:
BX – хранит сначала первый, а затем последующие элементы массива.
DX – хранит копию счетчика циклов.
CX – хранит сравниваемое число.
AX – формирование адреса следующего элемента.
Назначение регистров, используемых в основной программе:
AX – хранит начальный адрес массива.
SI – хранит число M.
CS – хранит номер найденного элемента массива A.
SS – хранит найденный элемент массива A.
DI – хранит число N.
DS – хранит номер найденного элемента массива B.
ES – хранит найденный элемент массива B; затем сумму найденных элементов массивов A и B.
Результаты записывается в регистры:
CS – номер найденного элемента массива A.
DS – номер найденного элемента массива B.
ES – сумма найденных элементов массивов A и B.
Алгоритм (блок-схема):
…
Описание программы.
1. [0] Начальный адрес массива А заносится в регистр AX и ARAM.
2. [1] Переслать значение регистра SI (число М) в регистр CX.
3. [2] Обращение к подпрограмме по адресу [19].
4. [3] Переслать значение регистра DX ( одновременно счетчик циклов и номер i-го элемента) в регистр CS.
5. [4] Переслать значение регистра BX (i-ый элемент массива) в регистр SS.
6. [5] Начальный адрес массива B заносится в регистр AX и ARAM.
7. [6] Переслать значение регистра DI (число N) в регистр CX.
8. [7] Обращение к подпрограмме по адресу [19].
9. [8] Переслать значение регистра DX ( одновременно счетчик циклов и номер i-го элемента) в регистр DS.
10. [9] Переслать значение регистра BX (i-ый элемент массива) в регистр ES.
11. [A] Сложить значения регистров SS и ES (т.е. найденные элементы массивов A и B), результат записать в регистр ES. Остановка работы и формирование признака STOP.
Описание подпрограммы.
1. [19] Первый элемент массива читается в регистр BX, а в счетчик заносится число циклов из поля CONST.
2. [1A] В DX копируется число циклов из поля CONST.
3. [1B] Сравниваются значения регистров BX и CX (т.е. i-й элемент массива сравнивается с числом M). Если результат положительный (значения равны), то происходит условный возврат из подпрограммы по адресу [3], если нет, то продолжить выборку команд в естественном порядке.
4. [1C] DX = DX + 1
5. [1D] К содержимому AX прибавляется 2, и полученная сумма засылается в AX и ARAM как адрес следующего элемента.
6. [1E] (i + 1)-й элемент массива читается в регистр BX, повторение цикла и переход по адресу [1B].
Основная программа:
Адрес МК |
Поле |
Значение |
Функция |
0 |
B SRC DST WM CONST |
0 5 4 2 32 |
|
1 |
A B DST |
6 1 4 |
|
2 |
JFI CHA CONST |
4 1 19 |
|
3 |
A B DST |
2 8 4 |
|
4 |
A B DST |
3 9 4 |
|
5 |
SRC DST WM CONST |
5 4 2 64 |
|
6 |
A B DST |
7 1 4 |
|
7 |
JFI CHA CONST |
4 1 19 |
|
8 |
A B DST |
2 A 4 |
|
9 |
A B DST |
3 B 4 |
|
10 |
A B ALU DST JFI |
9 B 3 4 5 |
Подпрограмма:
Таблица №2
Адрес МК |
Поле |
Значение |
Функция |
19 |
A B MEM DST CHA CONST |
0 3 5 1 6 4 |
|
1A |
A B SRC DST CONST |
0 2 5 4 1 |
|
1B |
A B ALU CCX CC CHA |
3 1 2 1 1 5 |
|
1C |
A B SRC ALU DST CONST |
0 2 5 3 4 1 |
|
1D |
SRC ALU DST WM CONST |
5 3 4 2 2 |
|
1E |
A B MEM DST CHA CONST |
0 3 5 1 4 1B |
Трасса:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.