|
Архитектура ЭВМ. Архитектура эвм. Лабораторные работы
Архитектура ЭВМ. Лабораторные работы.
Введение.
Д ля выполнения лабораторных работ будет использована программная модель ЭВМ, которая была разработана Жмакиным А.П.[1]. Эта модель позволяет реализовать доступ к различным элементам ЭВМ. На рис.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. Выполнить ее, проанализировать полученные результаты. Лабораторная работа № 1. Архитектура ЭВМ и система команд Задание
Ознакомиться с архитектурой ЭВМ. Записать в ОЗУ "программу", состоящую из пяти команд — варианты задания выбрать из табл. 1. Команды разместить в последовательных ячейках памяти. При необходимости установить начальное значение в устройство ввода IR. Определить те программно-доступные объекты ЭВМ, которые будут изменяться при выполнении этих команд. Выполнить в режиме Шаг введенную последовательность команд, фиксируя изменения значений объектов, определенных в п. 4, в таблице (см. форму табл. 10). Если в программе образуется цикл, необходимо просмотреть не более двух повторений каждой команды, входящей в тело цикла.
Таблица 1. Варианты задания 1
№
| IR
| Команда 1
| Команда 2
| Команда 3
| Команда 4
| Команда 5
| 1
| 000007
| IN
| MUL #2
| WR10
| WR @10
| JNS 001
| 2
| Х
| RD #17
| SUB #9
| WR16
| WR@16
| JNS 001
| 3
| 100029
| IN
| ADD #16
| WR8
| WR@8
| JS 001
| 4
| Х
| RD #2
| MUL #6
| WR 11
| WR @11
| JNZ 00
| 5
| 000016
| IN
| WR8
| DIV #4
| WR @8
| JMP 002
| 6
| Х
| RD #4
| WR 11
| RD @11
| ADD #330
| JS 000
| 7
| 000000
| IN
| WR9
| RD @9
| SUB#1
| JS 001
| 8
| Х
| RD 14
| SUB #8
| WR 8
| WR @8
| JNZ 001
| 9
| 100005
| IN
| ADD #12
| WR 10
| WR @10
| JS 004
| 10
| Х
| RD 4
| ADD #15
| WR 13
| WR @13
| JMP 001
| 11
| 000315
| IN
| SUB #308
| WR11
| WR @11
| JMP 001
| 12
| Х
| RD #988
| ADD #19
| WR9
| WR @9
| JNZ 001
| 13
| 000017
| IN
| WR11
| ADD 11
| WR @11
| JMP 002
| 14
| Х
| RD #5
| MUL #9
| WR10
| WR @10
| JNZ 001
|
Лабораторная работа №2. Вычисление арифметических выражений Задание 1. Вычислить значение арифметического выражения: (a + b) + (c – d) Варианты заданий Таблица 5.
Вариант
| a
| b
| c
| d
|
| 4
| 12
| 14
| 2
|
| 5
| 6
| 9
| 7
|
| 2
| 10
| 3
| 5
|
| 3
| 7
| 2
| 1
|
| 4
| 10
| 12
| 10
|
| 2
| 8
| 6
| 3
|
| 8
| 3
| 9
| 4
|
| 1
| 7
| 8
| 6
|
| 2
| 3
| 4
| 5
|
| 5
| 4
| 3
| 2
|
Задание 2. Вычислить значение арифметического выражения
1
| x2-5(x+7)+55 x=5
| 2
| 8(x-2)2-5x+10 x=7
| 3
| 250- x2+ 12x x=8
| 4
| 12(x2-7)2 x=6
| 5
| 2x2-7x+12 x=9
| 6
| (x+6)2+120 x=6
| 7
| x2+5(x+12) x=8
| 8
| 3x2-5(x+12)+10 x=5
| 9
| (3x-7)2 +5x-12 x=7
| 10
| 5x2+6(x+5)-25 x=6
| 11
| (x-3)2-12x+30 x=5
| 12
| 5x2+4(x+3)-25 x=9
|
.
Лабораторная работа №3. Программирование разветвляющихся процессов.
Для реализации алгоритмов, пути выполнения которых зависят от исходных данных, используются команды условной передачи управления. В качестве примера рассмотрим программу вычисления функции.
-
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 018
| Переход на вывод результата
| 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
| SUB 680
| Х2+72*Х-680
| 017
| OUT
| Вывод результата в регистр OR
| 018
| HLT
| Стоп
|
Задание .
Разработать программу вычисления функции в соответствии с заданным вариантом.
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
|
Лабораторная работа №4. Программирование циклических процессов.
Задание. Вычислить таблицу значений функции
1
| x2-5(x+7)+55 x от 0 до 5 шаг 1
| 2
| 8(x-2)2-5x+10 x от 1 до 9 шаг 2
| 3
| 250- x2+ 12x x от 4 до 10 шаг 2
| 4
| 12(x2-7)2 x от 0 до 10 шаг 2
| 5
| 2x2-7x+12 x от 6 до 1 шаг -1
| 6
| (x+6)2+120 x от 10 до 0 шаг -2
| 7
| x2+5(x+12) x от 1 до 10 шаг 3
| 8
| 3x2-5(x+12)+10 x от 10 до 4 шаг -1
| 9
| (3x-7)2 +5x-12 x от 2 до 10 шаг 2
| 10
| 5x2+6(x+5)-25 x от 9 до 1 шаг -1
| 11
| (x-3)2-12x+30 x от 5 до 10 шаг 1
| 12
| 5x2+4(x+3)-25 x от 5 до 0 шаг -1
|
Лабораторная работа №5. Обработка массивов При решении задач, связанных с обработкой массивов, возникает необходимость изменения исполнительного адреса при повторном выполнении некоторой последовательности команд.
Эта задача может быть решена путем использования косвенной адресации. В качестве примера рассмотрим программу суммирования последовательности чисел
Адрес
| Команда
| Примечание
| 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
| Стоп
|
Задание 1.
Вариант
| Задание
| 1
| Количество четных чисел
| 2
| Значение и порядковый номер минимального числа
| 3
| Сумму нечетных чисел
| 4
| Значение и номер первого числа >10
| 5
| Количество чисел <10
| 6
| Сумму чисел >10
| 7
| А1-А2+А3-А4+А5…….
| 8
| Значение и порядковый номер максимального числа
|
Задание 2. Решить задачу из Задания 3 для обработки 2х массивов с использованием подпрограммы, с записью полученного результата в ячейку, следующую за последним элементом массива. Литература.
Жмакин А.П. Архитектура ЭВМ. СПБ.: БХВ - Петербург, 2006.-320с. |
|
|