
- •Учебное пособие для лабораторных работ
- •По курсу:
- •Организация эвм и систем
- •Содержание
- •Инструкция по использованию программного обеспечения.
- •Описание языка mcl.
- •1. Описание языка mcl.
- •2. Алфавит.
- •7. Операции и выражения. Побитовые операции:
- •Операции сдвига:
- •8. Приоритеты и порядок выполнения операций:
- •9. Арифметические преобразования в выражениях.
- •10. Типы языка mcl.
- •11. Переменные языка mcl.
- •12. Операторы языка mcl. Оператор - формат:
- •Оператор - метка:
- •Оператор - безусловный переход: goто
- •Оператор - вызов подпрограммы: gosub
- •Оператор - возврат из подпрограммы: return
- •Оператор - условный оператор: if then
- •Оператор - оператор цикла: for to next
- •Оператор - пауза: pause
- •Оператор - вывод: write writeln
- •Оператор – ввод: read
- •14. Общие замечания.
- •Арифметико-логические устройства эвм и принципы их функционирования.
- •Лабораторная работа № 1. Моделирование функционирования алу при выполнении операции сложения/вычитания. Цель работы:
- •Алгоритм алгебраического сложения/вычитания двоичных чисел с фиксированной запятой при использовании дополнительного кода для представления слагаемых.
- •Моделирование функционирования алу.
- •Проверка на переполнение
- •Результат работы программы:
- •Контрольные вопросы.
- •Содержание отчета.
- •Варианты заданий.
- •Алгоритм умножения двоичных чисел с фиксированной запятой, представленных в дополнительном коде.
- •Моделирование функционирования алу при выполнении операции умножения чисел, представленных в прямом коде.
- •Моделирование функционирования алу при выполнении операции умножения чисел, представленных в дополнительном коде.
- •Контрольные вопросы.
- •Содержание отчета.
- •Варианты заданий.
- •Моделирование функционирования алу при выполнении операции деления методом с восстановлением остатка над числами, представленными в прямом коде.
- •2. Моделирование функционирования алу при выполнении операции деления методом без восстановления остатка над числами, представленными в прямом коде.
- •Контрольные вопросы.
- •Содержание отчета.
- •Варианты заданий.
- •Организация операционной части центрального процессора. Команды эвм.
- •Одноадресные команды.
- •Безадресные команды.
- •Способы адресации.
- •Микропрограмма и структурная схема операционной части цп при выполнении двухадресной команды формата регистр-регистр.
- •Примечания:
- •На рисунке 28 слева на графике расставлены вентили, которые в данной лабораторной работе не используются (они нужны для моделирования блока устройства управления);
- •Задание для выполнения лабораторной работы.
- •Содержание отчета.
- •Поэтапное выполнение программы (см. Файл буу.Mcl):
- •Примечание:
- •Задание для выполнения лабораторной работы.
- •Варианты заданий.
- •Лабораторная работа № 6. Моделирование функционирования селекторного канала.
- •Файл sk.Mcl.
- •Описание подпрограмм для моделирования селекторного канала, хранящихся в файле sk.Mcl. Подпрограмма k_u_k:
- •Подпрограмма w_reg:
- •Подпрограмма out_op:
- •Подпрограмма in_op:
- •Подпрограмма к_ор:
- •Подпрограмма w_op:
- •Подпрограмма z_rdu:
- •Подпрограмма zagr:
- •Задание.
- •Содержание отчета.
- •Пример результатов моделирования работы селекторного канала.
- •Варианты заданий для моделирования селекторного канала. Вариант номер 1
- •Вариант номер 2
- •Вариант номер 3
- •Вариант номер 4
- •Вариант номер 5
- •Вариант номер 6
- •Вариант номер 7
- •Вариант номер 8
- •Вариант номер 9
- •Вариант номер 10
- •Вариант номер 11
- •Вариант номер 12
- •Вариант номер 13
- •Вариант номер 14
- •Вариант номер 15
- •Лабораторная работа № 7. Моделирование функционирования мультиплексного канала.
- •Файл mk.Mcl.
- •Описание подпрограмм для моделирования мультиплексного канала, хранящихся в файле мk.Mcl. Подпрограммы k_u_k, оut_op, in_op и k_op:
- •Подпрограмма w_op:
- •Подпрограмма act:
- •Подпрограмма pas:
- •Подпрограмма w_pk:
- •Подпрограмма zagr2:
- •Задание.
- •Содержание отчета.
- •Пример результатов моделирования работы мультиплексного канала.
- •Варианты заданий для моделирования мультиплексного канала. Вариант номер 1
- •Вариант номер 2
- •Вариант номер 3
- •Вариант номер 4
- •Вариант номер 5
- •Вариант номер 6
- •Вариант номер 7
- •Вариант номер 8
- •Вариант номер 9
- •Вариант номер 10
- •Вариант номер 11
- •Вариант номер 12
- •Лабораторная работа № 8. Моделирование буферной памяти с признаковым обменом и сквозной записью. Сверхбыстродействующая кэш-память и ее моделирование.
- •Моделирование функционирования секторного буфера.
- •Выполнение работы.
- •Типы, используемые подпрограммами.
- •Используемые подпрограммы.
- •Исходные данные.
- •Содержание отчета.
- •Пример выполнения программы с признаковым обменом (файл cachesf.Mcl) для 1-го варианта:
- •Варианты заданий. Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Лабораторная работа № 9. Моделирование буферной памяти с признаковым обменом и сквозной записью. Моделирование функционирования группо-ассоциативного буфера.
- •Выполнение работы.
- •Типы, используемые подпрограммами.
- •Содержание отчета.
- •Пример выполнения программы с признаковым обменом (файл cacheaf.Mcl) для 1-го варианта:
Моделирование функционирования алу при выполнении операции умножения чисел, представленных в дополнительном коде.
При выполнении операции умножения чисел, представленных в дополнительном коде, будем сдвигать сумму частичных произведений и анализировать разряды множителя, начиная с младшего разряда. Для выполнения такого умножения можно использовать структурную схему, представленную на рис. 10.
Контрольные вопросы.
Особенности выполнение операции умножения чисел с фиксированной запятой, представленных в прямом и дополнительном коде.
Способы умножения чисел с фиксированной запятой.
Состав и назначение основных регистров АЛУ для выполнения операции умножения чисел с фиксированной запятой, представленных в прямом коде.
Содержание отчета.
Формулировка задания.
Структурная схема АЛУ для выполнения операции умножения чисел с фиксированной запятой, представленных в прямом коде.
Блок-схема выполнения операции умножения чисел с фиксированной запятой, представленных в прямом коде.
Программа на языке MCL, моделирующая выполнение операции умножения чисел с фиксированной запятой, представленных в прямом код.
Результаты выполнения программы в виде распечатки содержимого поля для вывода текстовой информации и скриншота в момент завершения выполнения программы.
Варианты заданий.
Промоделировать работу АЛУ при выполнении операции умножения чисел, представленных в прямом коде в соответствие с номером варианта. Номера вариантов даны в таблице 2.2. Рекомендуется использовать следующие обозначения:
INPA, INPB – регистры для ввода операндов;
R1 – регистр для хранения множимого;
R2 – регистр для хранения множителя и формирования младшей части произведения;
RA – регистр для хранения первого операнда АЛУ (множимое, либо 0);
RВ – регистр для хранения второго операнда АЛУ (сумма частичных произведений);
R3 – регистр сдвига множителя;
SM – регистр АЛУ суммы множимого и суммы частичных произведений;
RC – регистр для формирования старшей части произведения.
Разрядность регистров АЛУ принимается 8 бит. Число циклов умножения равно разрядности операндов, т.е. восьми. При выполнении лабораторной работы для наглядности, необходимо печатать содержимое всех регистров АЛУ на каждом такте умножения. Содержимое регистров должно быть представлено в двоичной форме, исходные значения операндов и результаты – в десятичной системе счисления.
Таблица 2.2. Варианты заданий для моделирования операции умножения
Номер варианта |
Множимое |
Множитель |
1 |
-2 125 -15 |
3 13 -87 |
2 |
-2 115 -20 |
4 18 -92 |
3 |
-2 105 -26 |
5 23 -98 |
4 |
-2 119 -32 |
6 31 -64 |
5 |
-3 95 -18 |
2 110 -37 |
6 |
-3 75 -120 |
3 39 -13 |
7 |
-3 118 -27 |
4 30 -81 |
8 |
-4 36 -84 |
2 99 -32 |
9 |
-4 24 -46 |
3 70 -28 |
10 |
-5 28 -32 |
2 35 -21 |
11 |
-6 79 -73 |
2 96 -36 |
12 |
-3 111 -7 |
5 85 -77 |
13 |
-2 125 -15 |
3 13 -87 |
14 |
-2 115 -20 |
4 18 -92 |
15 |
-2 105 -26 |
5 23 -98 |
16 |
-2 119 -32 |
6 31 -64 |
17 |
-3 95 -18 |
2 110 -37 |
18 |
-3 75 -120 |
3 39 -13 |
19 |
-3 118 -27 |
4 30 -81 |
20 |
-4 36 -84 |
2 99 -32 |
21 |
-4 24 -46 |
3 70 -28 |
22 |
-5 28 -32 |
2 35 -21 |
23 |
-6 79 -73 |
2 96 -36 |
24 |
-3 111 -7 |
5 85 -77 |
Лабораторная работа № 3.
Моделирование функционирования АЛУ при выполнении операции деления.
Цель работы:
изучение работы арифметико-логического устройства при выполнении операции деления над числами с фиксированной запятой, представленными в прямом коде.
Алгоритм деления двоичных чисел с фиксированной запятой над числами, представленными в прямом коде.
Выполнение операции деления в АЛУ сводится к последовательности операций сложения и сдвига. Существующие способы деления можно разделить на две группы:
1. Выполнение операции деления методом с восстановлением остатка.
2. Выполнение операции деления методом без восстановлением остатка.
Алгоритмы деления аналогичны алгоритму деления при ручном счете. Рассмотрим особенности деления на примере деления целых чисел. Пусть Z =, где X – делимое, представляемое обычно двойным словом (2n-1 значащих и 1 знаковый разряд), Y – делитель и Z – частное, представляемые словами, содержащими n-1 значащих и 1 знаковый разряд. Пусть для простоты X и Y – целые числа, представленные в прямом коде.
Так как Z – слово, то должно выполняться равенство │Z│<2n-1, т.е. <2n-1 или (│X│-│Y│*2n-1)<0. Если неравенство не выполняется, то возникает переполнение разрядной сетки частного и результат получается неверным. Это условие корректного выполнения деления.
Таким образом, для проверки корректности деления надо сдвинуть делитель на n-1 разряд влево и вычесть его из делимого. Если результат окажется отрицательным, то деление возможно. Иначе возникнет переполнение разрядной сетки частного.
┌───────┬───────┐
Делимое X └───────┴───────┘
┌───────┐
Делитель Y └───────┴───────┘
Делитель, сдвинутый ┌───────┐
на n-1 разряд влево └─┴───────┴─────┘
┌───────────────┐
Результат вычитания └───────────────┘
Таким образом выполнение операции деления начинается с пробного вычитания делителя, сдвинутого на n-1 разряд влево, из делимого. Если результат меньше нуля, то деление возможно. Если результат больше нуля, то деление невозможно. Знак частного формируется в результате анализа знаков операндов. Если операнды имеют одинаковые знаки, то частное получается положительным, если знаки различны - частное будет отрицательным. После определения знака результата знаковые разряды операндов обнуляются и деление производится над положительными числами.