Cтраница 3
Блок РОН состоит из восьми 16-разрядных регистров и разбит на регистры данных и индексные регистры. Регистры данных, иногда называемые группой Н и L, отличаются от других регистров тем, что каждый регистр данных можно использовать как один 16-разрядный или два 8-разрядных регистра, поскольку их старшие и младшие половины адресуются отдельно. Остальные регистры блока РОН всегда применяются только как 16-разрядные регистры. Регистры данных могут участвовать без ограничения в большинстве арифметических и логических операций. Кроме того, в некоторых командах ( умножение, деление, сдвиги) предполагается ( неявно) использование определенных регистров, что дает выигрыш в длине команды и позволяет получать компактные, но мощные коды. [31]
Физическая ширина ШД устанавливается при начальной инициализации сопроцессора, а логическая ширина устанавливается с помощью команды WID ( см. § 3.6) перед выполнением пересылки с ПДП. Пересылка слова, младший байт которого расположен по нечетному адресу, осуществляется как пересылка двух байтов: сначала пересылается младший байт по старшей половине шины AD15 - AD8 а затем пересылается старший байт по младшей половине шины данных AD7 - ADO. Сопроцессор автоматически объединяет два байта в слово в нужном порядке. [32]
![]() |
Микропрограмма команд.| Подпрограмма полуслова. [33] |
Слагаемый операнд - полуслово - может быть расположен в ОП, начиная с границы слова либо полуслова. Перед сложением он должен быть помещен в младшую половину слова слагаемого и расширен распространением знакового разряда в старшие разряды слова. [34]
Младшие половины каждого байта ( цифры) из поля второго операнда замещают младшие половины байтов в поле первого операнда. Старшие половины байтов ( зоны) остаются без изменений. Эта команда подобна команде Пересылка; отличие заключается в том, что в команде Пересылка цифр пересылаются только младшие половины байтов. [35]
![]() |
Организация двунаправлен - [ IMAGE ] Формат слова состояния SW него ввода-вывода программируемого периферийного адап. [36] |
Порты А, В и С для работы в том или ином режиме программируются независимо друг от друга. Так, если порт В запрограммирован для ввода данных в режиме 1, то порт А может выполнять любую другую операцию обмена из числа возможных. Свободная от управления часть порта С также программируется либо для ввода, либо для вывода в режим 0, причем младшая половина порта независимо от старшей. [37]
Деление мантисс выполняется, как правило, методом без восстановления остатка аналогично делению целых чисел. Отличие заключается в том, что делимое берется такой же длины, как и делитель. Однако нетрудно заметить, что для дробей можно условно принять, что делимое имеет двойную длину с нулями в разрядах младшей половины числа. После сдвигов влево частичных остатков освобождающиеся разряды всегда заполняются 0 и деление можно выполнять точно так же, как и деление целых чисел. [38]
Деление мантисс выполняется, как правило, методом без восстановления остатка аналогично делению целых - чисел. Отличие заключается в том, что делимое берется такой же длины, как и делитель. Однако нетрудно заметить, что для дробей можно условно принять, что делимое имеет двойную длину с нулями в разрядах младшей половины числа. После сдвигов влево частичных остатков освобождающиеся разряды всегда заполняются 0 и деление можно выполнять в точности так же, как деление целых чисел. [39]
Запись-считывание байтов и размещенных в одной ячейке по четному адресу слов реализуется за один машинный цикл. Обмен со словом, размещенным по нечетному адресу, выполняется за два машинных цикла. Сначала по старшей половине шины данных передается младший байт слова ( А01, ВНЕ 0), затем адрес получает приращение и по младшей половине шины данных производится обмен со старшим байтом слова. С учетом этого рекомендуется слова в памяти размещать по четным адресам. К данному замечанию особенно критично содержимое SP, так как обмен со стеком всегда выполняется по словам. [40]
Основная память МП ВМ80 рассматривается как линейный массив, состоящий из 64К байт. Формируемый микропроцессором 16-разрядный адрес дает ему возможность адресовать любой байт памяти. Слова в памяти хранятся в двух соседних байтах. В байте с младшим адресом хранится младшая половина слова, а в байте со следующим адресом - старшая. Адресом слова служит адрес его младшего байта. [41]
В предыдущих параграфах были описаны три способа представления чисел в памяти машины: двоичный формат с фиксированной точкой, двоичный формат с плавающей точкой и десятичный упакованный формат. Для чисел каждого формата в машине существует группа арифметических команд. К перечисленному необходимо добавить десятичный зонный формат, в котором представляется числовая информация, поступающая от человека к ЭВМ и от ЭВМ к человеку. В зонном формате каждая цифра числа занимает один байт, причем собственно цифра расположена в младшей половине байта, а старшая половина байта ( зона) обычно содержит шест-надцатеричное F. Исключение составляет самый правый байт поля, занимаемого числом, в зоне которого может располагаться знак числа. [42]
Умножение производится, начиная с младших разрядов множителя и со сдвигом вправо сумм частных произведений. Число циклов умножения зависит от того, на сколько разрядов множителя одновременно производится умножение, и от разрядности мантисс. В ЕС-1050 может быть не более 14 циклов умножения, что соответствует перемножению 56-разрядных мантисс. В модели ЕС-1030 мантиссы длинных операндов, а в модели ЕС-1020 любых операндов перемножаются по частям. В модели ЕС-1030 младшая половина множителя умножается сначала на старшую половину множимого, а затем на младшую. После этого старшая половина множителя умножается последовательно на старшую и на младшую половины множимого. Все промежуточные произведения, соответствующим образом сдвинутые относительно друг друга, складываются последовательно таким образом, что остаются 56 значащих разрядов. [43]