- •Учебное пособие для лабораторных работ
- •По курсу:
- •Организация эвм и систем
- •Содержание
- •Инструкция по использованию программного обеспечения.
- •Описание языка 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-го варианта:
Описание языка mcl.
1. Описание языка mcl.
Язык микрокоманд MCL представляет собой "BASIC-подобный" язык программирования высокого уровня. Он включает в себя:
- операторы ввода-вывода,
- операторы перехода,
- операторы вызова подпрограмм,
- операторы цикла,
- условный оператор;
поддерживает достаточный набор типов данных:
- простые переменные,
- тип регистр,
- тип структура,
- тип память;
и операций над объектами этих типов:
- арифметические,
- побитовые,
- сдвига,
- сравнения.
Ниже приведено полное описание языка MCL.
2. Алфавит.
Алфавит содержит:
-буквы: 26 латинских букв и $,
-цифры от 0 до 9,
-знаки арифметических операций: +, -, *, / ( целая часть от деления ), % (остаток от деления),
-знаки операций отношения: >, >=, <, <=, =, <>.
Замечания: все операции отношения реализованы как целочисленные операции (истинность-1, иначе-0) и могут быть использованы в любом месте любого выражения. При сравнении операнды рассматриваются как целые числа без знака.
3. Использование разделителей.
Пробелы, символы табуляции, перевода на новую строку используются как разделители. Любое количество этих символов может быть помещено в любое место, где допускается пробел.
4. Использование комментариев.
Комментарий - любой текст, помещенный между символами '{' и '}'. Разрешены везде, где допускаются пробелы.
5. Идентификаторы.
Идентификаторы - это последовательность букв и цифр, начинающихся с буквы. Их длина не должна превышать 16 символов. Они используются как имена переменных, полей структур и меток.
Пример. Правильные идентификаторы:
A, R0, REG_RESULT, KOD22.
Неправильные идентификаторы:
0A - должен начинаться с буквы;
A-REG - используется недопустимый символ '-'.
6. Константы.
Все константы в языке MCL интерпретируются как 32-х разрядные целые числа без знака, отрицательные константы не поддерживаются. Для получения отрицательных значений необходимо использовать явное преобразование (операцию COM). Таким образом, могут быть использованы константы из диапазона: 0..4294967295. Константы могут быть записаны в двоичной, десятичной или шестнадцатеричной системах счисления. Правило записи констант следующее:
<константа>:='0b' <b_посл>
| ['0d'] <d_посл>
| '0h' <h_посл>
Отсюда видно, что для записи константы в любой системе счисления необходимо перед числом указать спецификатор системы счисления вида '0b' или '0d' или '0h'. Без указания спецификатора формата константа интерпретируется как десятичная.
Примеры:
12345 или 0d12345 - десятичная константа 12345,
0b1000 - двоичная константа 8,
0hFF - шестнадцатеричная константа 255.
Замечание:
для определения констант, больших по своему значению чем 2147483647 (0h7FFFFFFF), необходимо использовать двоичную или шестнадцатеричную систему счисления. Это связано с особенностями внутреннего представления целых чисел системами PASCAL VS и Turbo PASCAL.
7. Операции и выражения. Побитовые операции:
NOT (дополнение до единицы) NOT op
Дополнение до единицы (инвертирование) значения op. Значение выражения содержит 0 во всех разрядах, в которых op содержит 1, и 1 во всех разрядах, в которых op содержит 0.
COM (дополнение до двух) COM op
Дополняет до двух (переводит в дополнительный код) значение op. Фактически вычисляется выражение 1+NOT op.
AND (побитовое "И") op1 AND op2
Побитовая операция "И" двоичных представлений op1 и op2. Значение выражения содержит 1 во всех разрядах, в которых и op1 и op2 содержат 1, и 0 во всех остальных разрядах.
OR (побитовое "ИЛИ") op1 OR op2
Побитовая операция "ИЛИ" двоичных представлений op1 и op2. Значение выражения содержит 1 во всех разрядах, в которых op1 или op2 содержат 1, и 0 во всех остальных разрядах.
XOR (побитовое исключающее "ИЛИ) op1 XOR op2
Побитовая операция исключающее "ИЛИ" двоичных представлений op1 и op2. Значение выражения содержит 1 в тех разрядах, в которых и op1 и op2 имеют разные двоичные значения, и 0 во всех остальных разрядах.
