- •Учебное пособие для лабораторных работ
- •По курсу:
- •Организация эвм и систем
- •Содержание
- •Инструкция по использованию программного обеспечения.
- •Описание языка 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-го варианта:
Начало
RA:=Швх
RA:=Швх
RB:=Швх
RB:=Швх
Сложение «0»
«1»
Вычитание
R1:=NOT RB
R1:=NOT RB
R1:=NOT RB
R1:=RB
RC:=RA+R1
RC:=RA+R1+1
RC:=RA+R1+1
Швых:=RC
Конец
Проверка на переполнение
Пример микропрограммы выполнения операции сложения на языке MCL.
Текст программы:
writeln "**************************************************";
writeln "* Моделирование алгоритма сложения *";
writeln "**************************************************";
REG RA[9],RB[9],R1[9],RC[9],INPA[8],INPB[8],Z[9];
start:
write "A=";read INPA;
write "B=";read INPB;
RA:=INPA; RA[8..8]:=INPA[7..7];
RB:=INPB; RB[8..8]:=INPB[7..7];
writeln "RA=",$B9 RA;
writeln "RB=",$B9 RB;
writeln "Сложение (A+B):";
R1:=RB;
RC:=RA+R1;
writeln "R1=",$B9 R1;
writeln "RC=",$B9 RC;
IF RC[8..8]<>RC[7..7] THEN
writeln "!!! Переполнение разрядной сетки !!!";
IF (RC[8..8]=RC[7..7]) AND (RC[8..8]=0) THEN
writeln "Результат Z=",$B9 RC,"=",$D3 RC;
IF (RC[8..8]=RC[7..7]) AND (RC[8..8]=1) THEN GOSUB WREZ;
writeln "***************** Конец программы ****************";
END;
WREZ:
Z:=COM(RC);
Z[8..8]:=1;
write "Результат Z= ",$B9 Z,"=-";
Z[8..8]:=0;
writeln $D3 Z;
RETURN;
Результат работы программы:
В случае получения положительного результата:
Рис. 7. Получение положительного результата
**************************************************
* Моделирование алгоритма сложения *
**************************************************
A=3
B=6
RA=000000011
RB=000000110
Сложение (A+B):
R1=000000110
RC=000001001
Результат Z=000001001= 9
***************** Конец программы ****************
Содержимое таблицы переменных
00 Переменная: ZF типа регистр; разрядность 1 бит; значение = 1
01 Переменная: NF типа регистр; разрядность 1 бит; значение = 0
02 Переменная: CF типа регистр; разрядность 1 бит; значение = 0
03 Переменная: RA типа регистр; разрядность 9 бит; значение = 3
04 Переменная: RB типа регистр; разрядность 9 бит; значение = 6
05 Переменная: R1 типа регистр; разрядность 9 бит; значение = 6
06 Переменная: RC типа регистр; разрядность 9 бит; значение = 9
07 Переменная: INPA типа регистр; разрядность 8 бит; значение = 3
08 Переменная: INPB типа регистр; разрядность 8 бит; значение = 6
09 Переменная: Z типа регистр; разрядность 9 бит; значение = 0
В случае получения отрицательного результата:
Рис. 8. Получение отрицательного результата
**************************************************
* Моделирование алгоритма сложения *
**************************************************
A=28
B=-37
RA=000011100
RB=111011011
Сложение (A+B):
R1=111011011
RC=111110111
Результат Z= 100001001=- 9
***************** Конец программы ****************
Содержимое таблицы переменных
00 Переменная: ZF типа регистр; разрядность 1 бит; значение = 0
01 Переменная: NF типа регистр; разрядность 1 бит; значение = 0
02 Переменная: CF типа регистр; разрядность 1 бит; значение = 0
03 Переменная: RA типа регистр; разрядность 9 бит; значение = 28
04 Переменная: RB типа регистр; разрядность 9 бит; значение = 475
05 Переменная: R1 типа регистр; разрядность 9 бит; значение = 475
06 Переменная: RC типа регистр; разрядность 9 бит; значение = 503
07 Переменная: INPA типа регистр; разрядность 8 бит; значение = 28
08 Переменная: INPB типа регистр; разрядность 8 бит; значение = 4294967259
09 Переменная: Z типа регистр; разрядность 9 бит; значение = 9
В случае переполнения:
Рис. 9. Переполнение
**************************************************
* Моделирование алгоритма сложения *
**************************************************
A=14
B=125
RA=000001110
RB=001111101
Сложение (A+B):
R1=001111101
RC=010001011
!!! Переполнение разрядной сетки !!!
***************** Конец программы ****************
Содержимое таблицы переменных
00 Переменная: ZF типа регистр; разрядность 1 бит; значение = 1
01 Переменная: NF типа регистр; разрядность 1 бит; значение = 0
02 Переменная: CF типа регистр; разрядность 1 бит; значение = 0
03 Переменная: RA типа регистр; разрядность 9 бит; значение = 14
04 Переменная: RB типа регистр; разрядность 9 бит; значение = 125
05 Переменная: R1 типа регистр; разрядность 9 бит; значение = 125
06 Переменная: RC типа регистр; разрядность 9 бит; значение = 139
07 Переменная: INPA типа регистр; разрядность 8 бит; значение = 14
08 Переменная: INPB типа регистр; разрядность 8 бит; значение = 125
09 Переменная: Z типа регистр; разрядность 9 бит; значение = 0
