Микропрограммирование операций ЭВМ

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

).

Видно, что знак у слова является отрицательным. После сдвига слова С будет С = 11110011.

При сдвиге влево на один разряд для обратного кода микрооперация будет иметь вид:

С(1 : 8):= С(1).((L(1)С(3 : 8)).С(1)).

Если как и прежде С = 10011001, то после сдвига будет С = 10110011.

При сдвиге влево на один разряд для дополнительного кода микрооперация будет иметь вид:

С(1 : 8):= С(1).((L(1)С(3 : 8)).0).

В дополнительном коде С = 10011010 (имеется лишняя единица для младшего разряда), тогда после указанного сдвига будет С =10110100. Видно, что дополнительный код отличается от обратного кода лишней единицей для младшего разряда.

К восьмому типу микроопераций относится микрооперация сравнения (на самом деле эта микрооперация является микрооперацией несравнения). В отличие от всех предыдущих микроопераций она имеет два вида результата.

Первый из них представляет собой сложение по модулю два исходных слов. Поскольку микрооперация сравнения логическая микрооперация, то длины слов должны быть одинаковыми. Если хотя бы в одном разряде получится единица, то тогда это будет означать несравнение слов, в противном случае исходные слова совпадают.

Пусть, например, имеется микрооперация

С(1:6):= А(1:6) В (1:6)

и А = 100110, В = 000111, С= 010101, тогда после выполнения данной микрооперации будет C(1:6) = 100001, это говорит о несравнении слов А и В.

Если будет А = 100110, В = 100110, С= 010101, тогда после выполнения

данной микрооперации будет 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. Двоичные простые выражения

 

Двоичное простое выражение имеет такую же структуру, что и микрооперация. Обычно правая часть данного выражения является словом, которому надлежит передать значение, полученное при вычислении правой части. В последней задаются микрооперации, количество которых должно быть больше трех.

Применительно к двоичным простым выражениям установлена очередность выполнения микроопераций, в определенной степени совпадающая с очередностью выполнения логических операций:

инверсия,

составление,

логическое умножение,

логическое сложение,

сложение по модулю два,

микрооперации группы сложения.

Естественно, что при наличии скобок вычисления должны вначале выполняться в них.

Что касается микроопераций группы сложения, то надо иметь в виду их однотипность. Подобные микро