
- •Учебное пособие для лабораторных работ
- •По курсу:
- •Организация эвм и систем
- •Содержание
- •Инструкция по использованию программного обеспечения.
- •Описание языка 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-го варианта:
Подпрограмма out_op:
OUT_OP:
RAP[0..1]:=0;
FOR WI:=0 TO 3;
WU:=24-WI*8;
RCHP[WU..(WU+7)]:=OP[RAP+WI];
NEXT;
RETURN;
Производит выборку из ОП содержимого 4-х ячеек (в соответствии с шириной выборки) на регистр РЧП в соответствии со значением старшей части адреса, находящегося на регистре РАП (два младших разряда регистра РАП обнуляются). Эта подпрограмма реализует микрокоманду обращения к ОП:
РЧП := ЧТ. (РАП)
Подпрограмма in_op:
IN_OP:
FOR WI:=0 TO 3;
WU:=24-WI*8;
OP[RAP+WI]:=RCHP[WU..(WU+7)];
NEXT;
RETURN;
Производит запись в ОП содержимого регистра РЧП (в четыре последовательные ячейки), начиная с адреса, находящегося в регистре РАП (этот адрес должен быть кратным четырем). Эта подпрограмма используется в подпрограмме К_ОР.
Подпрограмма к_ор:
K_OP:
{RAP-Д/Б РАНЕЕ ОПРЕДЕЛЕНО}
GOSUB OUT_OP;
W1:=(NOT (SB-1))*8;
RCHP[W1..31]:=BR[W1..31];
GOSUB IN_OP;
RETURN;
Производит запись в ОП блока информации из канала (БР), начиная с адреса, находящегося в регистре РАП (этот адрес должен быть кратным ширине выборки). Число байт информации из БР (1,2,3 или 4 байта), которое нужно занести в память, определяется значением счетчика байт SB. Число записываемых в ОП байт меньше 4 при передаче последних байт массива информации, длина которого не кратна 4 (ширине выборки).
Работа подпрограммы:
по адресу в РАП на РЧП считывается содержимое соответствующих ячеек ОП (с помощью подпрограммы OUT_OP). Затем на РЧП заменяется требуемое количество байт (равное значению SB; если SB=0, то заменяются все 4 байта) информацией из регистра БР и измененное содержимое РЧП записывается обратно в ОП (с помощью подпрограммы IN_OP).
Подпрограмма w_op:
W_OP:
WRITELN " СОДЕРЖИМОЕ ЯЧЕЕК ОП:";
FOR WK:=0 TO 1;
FOR WI:=0 TO 1;
FOR WJ:=0 TO 3;
WU:=OP[ADDR+3+WK*8]+WI*4+WJ;
WRITE $H6 WU," ",$H2 OP[WU]," * ";
NEXT;
WRITELN;
NEXT;NEXT;
RETURN;
Распечатывает содержимое ячеек ОП. Распечатываются 16 ячеек - по 8 ячеек, начиная с адресов, указанных в поле адреса каждой канальной команды. В одной строке распечатываются 4 ячейки (в соответствии с шириной выборки).
Например для варианта канальной программы
01 000014 6000 0006
02 000038 2000 0003
будет получена распечатка вида:
СОДЕРЖИМОЕ ЯЧЕЕК ОП:
000014 03 * 000015 46 * 000016 89 * 000017 CC
000018 00 * 000019 00 * 000019 00 * 00001A 00
000038 05 * 000039 FC * 00003A F3 * 00003B C6
00003C 31 * 00003D D8 * 00003E CF * 00003F C6
/ \
адрес ячейки содержимое ячейки
Подпрограмма z_rdu:
Z_RDU:
RDU:=PU[WR]; WR:=WR+1;
RETURN;
Загружает регистр РДУ очередным значением из РU. Используется при операции "чтение".
Подпрограмма zagr:
ZAGR:
READ " ВВЕДИТЕ НОМЕР ВАРИАНТА ",WN;
ADDR:=200+WN*16;
WR:=0; W7:=WN*7; WF:=0;
OP[ADDR]:=2; OP[ADDR+8]:=2;
IF WN[0..0]=1 THEN OP[ADDR]:=1;
IF WN[0..0]=0 THEN OP[ADDR+8]:=WN[1..1];
OP[ADDR+7]:=7-W7[0..1]; OP[ADDR+15]:=2+W7[0..1];
IF OP[ADDR+8]=0 THEN OP[ADDR+4]:=160;
IF OP[ADDR+8]<>0 THEN OP[ADDR+4]:=96;
OP[ADDR+12]:=32;
OP[(ADDR+3),2..4]:=W7[0..2]; OP[(ADDR+3),5..6]:=WN[2..3];
OP[ADDR+11]:=OP[ADDR+3]+24+4*WN[0..1];
FOR WI:=0 TO 1;
WJ:=ADDR+8*WI;
IF OP[WJ]=1 THEN WF:=WF+OP[WJ+7];
IF OP[WJ]<>1 THEN GOSUB Z_OP;
NEXT;
WRITELN "ВАРИАНТ НОМЕР ",$D3 WN;
WRITELN "АДРЕС ПЕРВОЙ КАН. КОМАНДЫ ",$H6 ADDR;
WRITELN "КАНАЛЬНАЯ ПРОГРАММА: ";
FOR WI:=0 TO 1;
WRITE " ",$H2 OP[ADDR+WI*8]," ",$H2 OP[ADDR+1+WI*8];
WRITE $H2 OP[ADDR+2+WI*8],$H2 OP[ADDR+3+WI*8]," ";
WRITE $H2 OP[ADDR+4+WI*8],$H2 OP[ADDR+5+WI*8]," ";
WRITELN $H2 OP[ADDR+6+WI*8],$H2 OP[ADDR+7+WI*8];
NEXT;
GOSUB W_OP;
IF WF=0 THEN GOTO WM1;
WRITELN "ЧИСЛА, СЧИТЫВАЕМЫЕ С ВУ:";
FOR WI:=0 TO (WF-1);
PU[WI]:=3+WI*WN*17;
WRITE " ",$H2 PU[WI];
NEXT;
WM1:
WRITELN;
WRITELN "************************************************";
RETURN;
Z_OP:
FOR WK:=0 TO 7;
OP[OP[WJ+3]+WK]:=5+WK*WN*13+WJ;
NEXT;
RETURN;
Формирует исходные данные для моделирования по задаваемому с клавиатуры номеру варианта WN. Изучение работы данной подпрограммы для студентов не требуется! Подпрограмма формирует канальную программу; адрес первой канальной команды ADDR, начиная с которого загружает канальную программу в ОП; числа, считываемые с ВУ (если есть операция чтения); начальную загрузку данных в ОП (для записи на ВУ) и производит распечатку всех исходных данных в виде:
ВАРИАНТ НОМЕР 19
АДРЕС ПЕРВОЙ КАН. КОМАНДЫ 0001F8
КАНАЛЬНАЯ ПРОГРАММА:
01 000014 6000 0006
02 000038 2000 0003
СОДЕРЖИМОЕ ЯЧЕЕК ОП:
000014 00 * 000015 00 * 000016 00 * 000017 00
000018 00 * 000019 00 * 00001A 00 * 00001B 00
000038 05 * 000039 FC * 00003A F3 * 00003B EA
00003C E1 * 00003D D8 * 00003C CF * 00003F C6
ЧИСЛА, СЧИТЫВАЕМЫЕ С ВУ:
03 46 89 CC 0F 52