Контрольная работа: Микропрограммирование операций ЭВМ
данной микрооперации будет C(1:6) = 000000, что говорит о сравнении слов А и В.
Второй вид результата является однобитовым, он представляет собой логическую сумму разрядов результата первого вида. Ясно, что при нулевом результате первого вида однобитовый результат также будет равен 0, в противном случае – 1.
Для ранее получающегося результата C(1:6) = 100001 однобитовый результат С(1) = 1 (не путать с первым разрядом слова С), а для - результата C(1:6) = 000000 однобитовый результат С(1) = 0.
Девятый тип микроопераций составляет группу микроопераций сложения (сложения, вычитания и циклического сложения).
Микрооперации данной группы предназначены для описания работы сумматора при сложении, вычитании и циклическом сложении.
Последняя микрооперация требует равенства исходных слов. Единица переноса из старшего разряда передается для сложения в младший разряд. Вне Ф-языка такая микрооперация называется операцией контрольного сложения. Для контроля правильности записи и считывания слов файла применительно к дискам все слова складываются по правилу контрольного сложения, получающаяся контрольная сумма добавляется в конце файла. При считывании снова подсчитывается контрольная сумма, которая сравнивается с имеющейся такой суммой в конце файла. Если суммы совпадают, то ошибок при считывании нет, в противном случае считывание повторяется установленное число раз до совпадения сумм.
Пусть, например, имеется микрооперация
G(1:6):= А(1:6) + В(1:6)
и А = 100110, В = 100111, G= 010101, тогда после выполнения данной микро-операции будет G(1:6) = 001110.
Для первых двух микроопераций левое слово должно иметь лишний разряд по сравнению с наиболее длинным словом правой части.
В Ф–языке принято применять дополнительные коды для сложения и вычитания.
При получении кода слова слева у слова добавляется знаковый разряд, коды выравниваются по длине за счет доопределения значениями знаковых разрядов.
Пусть, например, имеются микрооперации
С(1:7):= А(1:6) + В (1:6),
D(1:7):= А(1:6) - В(1:6),
E(1:7):= В(1:6) - А(1:6)
и А = 100110, В = 100111, С= 010101, D= 101010, E= 1010101, тогда после выполнения данных микроопераций будет C(1:7) = 1001101, D(1:7) = 1111111, E(1:7)= 0000001.
Наконец, к десятой группе относятся так называемые комбинированные микрооперации. В правой части таких микроопераций разрешается иметь две, три обычные микрооперации.
Например, получение обратного кода отрицательного слова В описывается именно комбинированной микрооперацией:
В (1:6):= В(1).ù В (2:6),
Видно, что знаковый разряд слова остается без изменения, а значащая часть проинвертирована.
Нетрудно заметить, что выше уже имелись комбинированные микрооперации.
1.3.2. Двоичные выражения
В Ф-языке имеются двоичные выражения, которые относятся к конструкциям средней сложности.
Двоичные выражения отличаются от микроопераций тем, что в правой части у них задействовано более трех микроопераций и могут использоваться так называемые условные выражения, основанные чаще всего на проверке отношений.
Двоичные выражения делятся на двоичные простые (неусловные) и двоичные условные выражения. Из последующего будет ясно, что двоичные условные выражения не следует отождествлять с чисто условными выражениями.
1.3.2.1. Двоичные простые выражения
Двоичное простое выражение имеет такую же структуру, что и микрооперация. Обычно правая часть данного выражения является словом, которому надлежит передать значение, полученное при вычислении правой части. В последней задаются микрооперации, количество которых должно быть больше трех.
Применительно к двоичным простым выражениям установлена очередность выполнения микроопераций, в определенной степени совпадающая с очередностью выполнения логических операций:
инверсия,
составление,