Архитектура ЭВМ_ЛР (Метода для лабораторных работ по интерфейсам)
Описание файла
Документ из архива "Метода для лабораторных работ по интерфейсам", который расположен в категории "". Всё это находится в предмете "интерфейсы перифирийных устройств" из 6 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "интерфейсы перифирицных устройств" в общих файлах.
Онлайн просмотр документа "Архитектура ЭВМ_ЛР"
Текст из документа "Архитектура ЭВМ_ЛР"
5
Архитектура ЭВМ.
Лабораторные работы.
Введение.
Д ля выполнения лабораторных работ будет использована программная модель ЭВМ, которая была разработана Жемакиным А.П.[1]. Эта модель позволяет реализовать доступ к различным элементам ЭВМ. На рис.1 представлено главное окно этой программы.
Окно Процессор обеспечивает доступ ко всем регистрам и флагам процессора.
Программно-доступные регистры и флаги:
-
Acc – аккумулятор;
-
PC – счетчик адреса текущей команды;
-
SP – указатель стека;
-
RB – регистр базового адреса;
-
RA – регистр адреса, содержащий исполнительный адрес при косьвенной адресации;
-
IR – входной регистр;
-
OR – выходной регистр;
-
I - флаг разрешения прерываний.
Системные регистры и флаги:
-
DR – регистр данных АЛУ, содержащий второй операнд;
-
MDR – регистр данных ОЗУ;
-
MAR – регистр адреса ОЗУ;
-
RDR – регистр данных блока РОН;
-
RAR – регистр адреса блока РОН;
-
CR – регистр команд, содержащий поля:
-
COP – код операции;
-
TA - тип адресации
-
ADR – адрес или непосредственный операнд.
-
Z – флаг нулевого значения Acc;
S – флаг отрицательного значения Acc;
OV – флаг переплнения
Кнопка R (Reset) устанавливает все регистры в начальное (нулевое) значение.
Окно Текст программы представляет собой окно текстового редактора, в котором можно редактировать тексты программ, загужать в него текстовые файлы и сохранять подготовленный текст в виде файла.
В этом окне присутствует кнопка Компилировать, которая запускает процедуру ассемблирования текста программы. При обнаружении синтаксических ошибок информация о них выводится в окно Сообщения.
Внимание! Откомпилированная программа размещается, начиная с адреса 000. Данные надо располагать в памяти так, чтобы они не пересекались с кодом программы.
Рис.2
Выполнение программы осуществляется нажатием на кнопку Пуск. На рис.2 представлены результаты выполнения программы сложения чисел 5 и 7, которые располагаются в ячейках памяти с адресами 070 и 071. Результат выполнения программы, число 12 записывается в ячейку ОП с адресом 072. Описание этой программы содержится в таблице 1.
Таблица1.
Адрес | Команда | Комментарий |
000 | rd 070 | Загрузка в аккумулятор первого числа. |
001 | wr R1 | Запись первого числа в регистр R1 |
002 | rd 071 | Загрузка в аккумулятор второго числа |
003 | add r1 | Сложение чисел, результат в аккумуляторе |
004 | wr 072 | Запись результата в ОЗУ |
005 | hlt | Стоп |
Таблица 2. Система команд.
№п/п | Мнемокод | Название |
00 | NOP | Пустая операция |
01 | IN | Ввод |
02 | OUT | Вывод |
03 | RET | Возврат из подпрограммы |
04 | HLT | Стоп |
05 | JMP | Безусловный переход |
06 | JZ | Переход, если 0. |
07 | JNZ | Переход, если не 0 |
08 | JS | Переход, если отрицательно |
09 | JNS | Переход, если положительно |
10 | JO | Переход, если переполнение |
11 | JNO | Переход, если нет переполнения |
12 | CALL | Вызов п/п |
13 | RD | Чтение (в аккумулятор) |
14 | WR | Запись (из аккумулятора) |
15 | ADD | Сложение |
16 | SUB | Вычитание |
17 | MUL | Умножение |
18 | DIV | Деление |
19 | ADI | Сложение с данными |
20 | SBI | Вычитание с данными |
21 | MULI | Умножение с данными |
22 | DIVI | Деление с данными |
23 | MOV | Пересылка R1← R2 |
Таблица 3. Типы адресации
Обозначение | Код | Тип адресации | Пример |
0 | Прямая (регистровая) | ADD 23 (ADD R3) | |
# | 1 | Непосредственная | ADD #33 |
@ | 2 | Косвенная | ADD @33 |
@R | 3 | Косвенно - регистровая | ADD @R3 |
Задание 1.
Ввести в окно Текст программы, программу представленную в таблице 1. Выполнить ее, проанализировать полученные результаты.
Программирование разветвляющихся процессов.
Для реализации алгоритмов, пути выполнения которых зависят от исходных данных, используются команды условной передачи управления. В качестве примера рассмотрим программу вычисления функции.
Y={ | (x-11)2-125 при х>=16 |
x2+72x-680 при х<16 |
Адрес | Команда | Примечание |
000 | IN | Ввод х |
001 | WR 30 | Запись х в ячейку 30 |
002 | SUB #16 | Сравнение х с границей (16) |
003 | JS 010 | Переход по отрицательной разности |
004 | RD 30 | Загрузка в аккумулятор х |
005 | SUB #11 | Х-11 |
006 | WR 31 | Запись х -11 в ячейку 31 |
007 | MUL 31 | (х-11)2 |
008 | SUB #125 | (х-11)2-125 |
009 | JMP 017 | Переход на вывод результата |
010 | RD 30 | Загрузка в аккумулятор х |
011 | MUL 30 | Х2 |
012 | WR 31 | Запись Х2 в ячейку 31 |
013 | RD 30 | Загрузка в аккумулятор х |
014 | MUL #72 | 72*Х |
015 | ADD 31 | Х2+72*Х |
016 | ADI 10680 | Х2+72*Х-680 |
017 | OUT | Вывод результата в регистр OR |
018 | HLT | Стоп |
Задание 2.
Разработать программу вычисления функции в соответствии с заданным вариантом.
1. Y={ | x2-5(x+7)+55 x>=10 | 5. Y={ | (3x-7)2 +5x-12 x>=10 |
15x-(x-5)2 x<10 | 3x2-12x x<10 | ||
2. Y={ | 250- x2+ 12x x>=10 | 6 Y={ | 5x2+6(x+5)-25 x>=10 |
12(x2-7)2 x<10 | (x-3)2-12x+30 x<10 | ||
3. Y={ | 2x2-7x+12 x>=10 | 7. Y={ | 8(x-2)2-5x+10 x>=10 |
(x+6)2+120 x<10 | 5x2+4(x+3)-25 x<10 | ||
4. Y={ | x2+5(x+12) x>=10 | 8. Y={ | 6(x+1)2-5x+12 x>=10 |
3x2-5(x+12)+10 x<10 | 2x2-9(x-3)+31 x<10 |
Программирование циклических процессов.
При решении задач, связанных с обработкой массивов, возникает необходимость изменения исполнительного адреса при повторном выполнении некоторой последовательности команд.
Эта задача может быть решена путем использования косвенной адресации. В качестве примера рассмотрим программу суммирования последовательности чисел
Адрес | Команда | Примечание |
000 | rd #3 | Загрузка в аккумулятор числа повторений цикла |
001 | wr r2 | Запись числа повторений цикла в регистр R2 |
002 | rd #070 | Загрузка в аккумулятор адреса первого числа |
003 | wr r1 | Запись адреса первого числа в регистр R1 |
004 | rd #0 | Загрузка в аккумулятор начального значения суммы S=0 |
005 | wr r3 | Запись начального значения суммы в регистр R3 |
006 | m1:rd @r1 | Загрузка в аккумулятор очередного числа |
007 | add r3 | Добавление к текущей сумме очередного числа |
008 | wr r3 | Запись текущего значения суммы в регистр R3 |
009 | rd r1 | Загрузка в аккумулятор адреса очередного числа |
010 | add #1 | Увеличение на 1 адреса очередного числа |
011 | wr r1 | Запись адреса очередного числа в регистр R1 |
012 | rd r2 | Загрузка в аккумулятор оставшегося числа повторений цикла |
013 | sub #1 | Уменьшение на 1оставшегося числа повторений цикла |
014 | wr r2 | Запись в R2 оставшегося числа повторений цикла |
015 | jnz m1 | Проверка оставшегося числа повторений цикла(R2), и если R2<>0 переход на метку M1 |
016 | rd r3 | Загрузка в аккумулятор полученного значения суммы S |
017 | wr 080 | Запись результата в ОЗУ |
018 | hlt | Стоп |
Задание 3.
Вариант | Задание |
1 | Количество четных чисел |
2 | Значение и порядковый номер минимального числа |
3 | Сумму нечетных чисел |
4 | Значение и номер первого числа >10 |
5 | Количество чисел <10 |
6 | Сумму чисел >10 |
7 | А1-А2+А3-А4+А5……. |
8 | Значение и порядковый номер максимального числа |
Задание 4. Решить задачу из Задания 3 для обработки 2х массивов с использованием подпрограммы, с записью полученного результата в ячейку, следующую за последним элементом массива.
Литература.
Жемакин А.П. Архитектура ЭВМ. СПБ.: БХВ - Петербург, 2006.-320с.
16>10>10>10>10>10>10>10>10>10>