Принципы работы системы IBM/370
Описание логической структуры вычислительных машин Системы 370. Особенности мультипроцессирования. Команды общего назначения и управления системой, обработки десятичных данных и команды с плавающей точкой. Средства обработки машинных ошибок (коррекция).
Рубрика | Программирование, компьютеры и кибернетика |
Вид | книга |
Язык | русский |
Дата добавления | 12.06.2014 |
Размер файла | 658,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
+--------------------------------------+
¦ BA ¦ R1 ¦ R3 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Производится сравнение первого и второго операндов. Если они равны друг другу, третий операнд записывается в память на место второго операнда. Если они не равны, второй операнд помещается на место первого операнда.
Каждое из полей R1 и R3 задает общий регистр. Второй операнд представляет собой слово в основной памяти.
В зависимости от результата сравнения всех 32 разрядов (равенства или неравенства) устанавливается признак результата. В случае неравенства не делается попытки записи в память, и никакие действия, связанные с установкой бита изменения и защитой памяти, не производятся.
Если имеет место равенство, то в период от момента выборки второго операнда для сравнения и до момента записи в память третьего операнда на место второго запрещаются обращения какого-либо другого процессора к ячейке второго операнда.
Перед выборкой второго операнда для сравнения и - в случае установки признака результата, равного нулю, - после записи результата в память выполняется временная отмена совмещений. Выполнение процессором команды задерживается до тех пор, пока не будут завершены все предыдущие обращения к основной памяти по отношению к каналам и к другим процессорам. Только после этого производится выборка второго операнда. До тех пор пока не будет завершено выполнение данной команды, включая возможную запись значения результата в основную память, доступ к памяти за последующими командами или их операндами по отношению к каналам и другим процессорам не производится.
Второй операнд должен быть расположен на границе слова. При нарушении этого требования фиксируется особый случай спецификации и операция подавляется.
Признак результата:
0 - первый и второй операнды равны, второй операнд замещен третьим;
1 - первый и второй операнды не равны, первый операнд замещен вторым;
2 - не бывает;
3 - не бывает.
Программные прерывания:
операция (если в данной установке отсутствует средство условного обмена);
спецификация;
доступ (выборка второго операнда и запись в память на место второго операнда).
Замечания по программированию
Команду СРАВНЕНИЕ С ОБМЕНОМ можно применять в программах, осуществляющих совместное использование общих областей памяти в мультипрограммном или мультипроцессорном режиме. Ниже приведены два примера такого применения.
Выполняя следующую процедуру, программа может изменить содержимое ячейки памяти, даже если существует вероятность того, что данная программа будет прервана другой, которая зашлет в указанную ячейку новое значение, или что другой процессор будет в то же самое время производить изменения в этой ячейке. Сначала полное слово, содержащее байт или байты, которые должны быть изменены, загружается в общий регистр. Затем вычисляется новое значение и помещается в другой общий регистр. После этого выполняется команда СРАВНЕНИЕ С ОБМЕНОМ, у которой поле R1 задает регистр. содержащий первоначальное значение, а поле R3 задает регистр, содержащий новое значение. Если устанавливается признак результата, равный нулю, то это означает. что требуемое изменение было успешно выполнено. Признак результата, равный единице, показывает, что во время выполнения команды СРАВНЕНИЕ С ОБМЕНОМ данная ячейка памяти уже не содержала первоначального значения, требуемое изменение не было выполнено и общий регистр, заданный полем R1, содержит теперь новое текущее значение, выбранное из данной ячейки. Если установлен признак результата, равный единице, программа может повторить указанную процедуру, используя новое текущее значение.
Команда СРАВНЕНИЕ С ОБМЕНОМ может применяться для контролируемого совместного использования общей области памяти подобно тому, как это описано в замечаниях по программированию для команды ПРОВЕРИТЬ И УСТАНОВИТЬ, но в отличие от последней она обеспечивает дополнительную возможность оставлять сообщение, если данная общая область уже используется. Чтобы осуществить это, слово из памяти может быть использовано в качестве управляющего слова. Нулевое значение этого слова показывает, что общая область не используется, его отрицательное значение свидетельствует об использовании общей области, а положительное значение, отличное от нуля, говорит о том, что область используется и что само это значение является адресом самого последнего сообщения, внесенного в список сообщений. Таким образом, все программы, желающие получить доступ в указанную область, могут использовать команду СРАВНЕНИЯ С ОБМЕНОМ для изменения значения управляющего слова. Изменение производится с целью показать, что общая область используется, или для внесения сообщения в список. Только программа, получившая доступ в указанную область, может без риска использовать команду СРАВНЕНИЕ С ОБМЕНОМ также и для того, чтобы убрать сообщения из списка.
Нужно отметить, что команда СРАВНЕНИЕ С ОБМЕНОМ не блокирует обращения каналов к памяти. Отсюда следует, что эта команда не должна использоваться для изменения слова, если все оно или его часть находится в области ввода, так как входные данные могут быть потеряны.
СРАВНЕНИЕ ДВОЙНОЕ С ОБМЕНОМ
CDS R1,R3,D2(B2) [RS]
+--------------------------------------+
¦ BB ¦ R1 ¦ R3 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Производится сравнение первого и второго операндов. Если они равны друг другу, третий операнд записывается в память на место второго операнда. Если они не равны, второй операнд помещается на место первого операнда.
Каждое из полей R1 и R3 задает пру общих регистров. Второй операнд представляет собой двойное слово в основной памяти.
В зависимости от результата сравнения всех 64 разрядов (равенства или неравенства) устанавливается признак результата. В случае неравенства не делается попытки записи в память, и никакие действия, связанные с установкой бита изменения и защитой памяти, не производятся.
Если имеет место равенство, то в период от момента выборки второго операнда для сравнения и до момента записи в память третьего операнда на место второго запрещаются обращения какого-либо другого процессора к ячейке второго операнда.
Перед выборкой второго операнда для сравнения и - в случае установки признака результата, равного нулю, - после записи результата в память выполняется временная отмена совмещений. Выполнение процессором команды задерживается до тех пор, пока не будут завершены все предыдущие обращения к основной памяти по отношению к каналам и к другим процессорам. Только после этого производится выборка второго операнда. До тех пор пока не будет завершено выполнение данной команды, включая возможную запись значения результата в основную память, доступ к памяти за последующими командами или их операндами по отношению к каналам и другим процессорам не производится.
Каждое из полей R1 и R3 должно задавать четный номер регистра. Второй операнд должен быть расположен на границе двойного слова. При нарушении этих требований фиксируется особый случай спецификации и операция подавляется.
Признак результата:
0 - первый и второй операнды равны, второй операнд замещен третьим;
1 - первый и второй операнды не равны, первый операнд замещен вторым;
2 - не бывает;
3 - не бывает.
Программные прерывания:
операция (если в данной установке отсутствует средство условного обмена);
спецификация;
доступ (выборка второго операнда и запись в память на место второго операнда).
Замечания по программированию
В замечаниях по программированию, относящихся к команде СРАВНЕНИЕ С ОБМЕНОМ, приведены примеры ее использования. Подобным же образом может использоваться и команда СРАВНЕНИЕ ДВОЙНОЕ С ОБМЕНОМ.
Кроме того, эта команда может иметь другое применение. Пусть имеется списочная структура, а также управляющее слово, содержащее адрес первого сообщения в этом списке (подобная организация описана во втором примере использования команды СРАВНЕНИЕ С ОБМЕНОМ). Если нескольким программам разрешено добавлять и убирать сообщения с помощью команды СРАВНЕНИЕ С ОБМЕНОМ, то существует вероятность разрушения цепочки взаимных ссылок. Это может произойти в следующей ситуации. После того как одна программа выбрала адрес самого последнего сообщения с целью удаления его из списка, друга программа убирает первые два сообщения, а затем вводит первое сообщение обратно в цепочку. Когда возобновится выполнение первой программы, ей не будет известно, что список уже изменился.
Если в качестве управляющего слова выбрать двойное слово, одна половина которого содержит адрес первого сообщения, а другая - счетчик числа изменений, увеличивающийся всякий раз, когда происходит изменение списка, и использовать команду СРАВНЕНИЕ ДВОЙНОЕ С ОБМЕНОМ для одновременного изменения обоих полей управляющего слова, то вероятность разрушения цепочки становится пренебрежимо малой.
Нужно отметить, что команда СРАВНЕНИЕ ДВОЙНОЕ С ОБМЕНОМ не блокирует обращения каналов к памяти. Отсюда следует, что эта команда не должна использоваться для изменения двойного слова, если все оно или его часть находится в области ввода, так как входные данные могут быть потеряны.
СРАВНЕНИЕ ПОЛУСЛОВА
CH R1,D2(X2,B2) [RX]
+--------------------------------------+
¦ 49 ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Первый операнд сравнивается со вторым операндом, и в зависимости от результата сравнения устанавливается признак результата. Второй операнд имеет длину два байта и рассматривается как целое число со знаком, состоящее из 16 разрядов, включая знаковый.
Перед сравнением второй операнд расширяется до 32 разрядов путем присвоения старшим 16 битам значения знакового разряда.
Сравнение выполняется алгебраически, сравниваемые операнды рассматриваются как целые числа со знаком, состоящие из 32 разрядов, включая знаковый. В результате операции исходные операнды в общих регистрах и в памяти не изменяются.
Признак результата:
0 - операнды равны;
1 - первый операнд меньше;
2 - первый операнд больше;
3 - не бывает.
Программные прерывания:
доступ (выборка второго операнда).
СРАВНЕНИЕ КОДОВ
CLR R1,R2 [RR]
+--------------------+
¦ 15 ¦ R1 ¦ R2 ¦
+--------------------+
0 7 8 11 12 15
CL R1,D2(X2,B2) [RX]
+--------------------------------------+
¦ 55 ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
CLI D1(B1),I2 [SI]
+-------------------------------+
¦ 95 ¦ I2 ¦ B1 ¦ D1 ¦
+-------------------------------+
0 7 8 15 16 19 20 31
CLC D1(L,B1),D2(B2) [SS]
+----------------------------------------------------+
¦ D5 ¦ L ¦ B1 ¦ D1 ¦ B2 ¦ D2 ¦
+----------------------------------------------------+
0 7 8 15 16 19 20 31 32 35 36 47
Первый операнд сравнивается со вторым операндом, и в зависимости от результата сравнения устанавливается признак результата.
Сравниваемые операнды рассматриваются как двоичные величины без знака, и любые коды являются допустимыми. Операция производится слева направо и прекращается, как только будут встречены несовпадающие биты или будет достигнут конец полей.
Если операнд в команде CL или CLC определен таким образом, что часть его недоступна для выборки, однако доступная часть операнда позволяет завершить операцию, то нельзя заранее сказать, будет или нет зафиксирован особый случай доступа, относящийся к недоступной части операнда.
Признак результата:
0 - операнды равны;
1 - первый операнд меньше;
2 - первый операнд больше;
3 - не бывает.
Программные прерывания:
доступ (выборка второго операнда в команда CL и CLC, выборка первого операнда в командах CLI и CLC).
Замечания по программированию
Команда СРАВНЕНИЕ КОДОВ характерна тем, что все биты обрабатываются как элементы двоичной величины без знака. В операции с полями переменной длины максимальная длина сравниваемой информации составляет 256 байтов. Операция может быть использована для сравнения десятичных упакованных полей без знака или буквенно-цифровой информации. Последняя может быть представлена в любом коде, который образует упорядоченную последовательность, основанную на возрастающих или убывающих двоичных величинах. Например, в расширенном двоично-кодированном десятичном коде EBCDIC буквы и цифры упорядочены по принципу возрастания двоичных значений кодов Двоичный код обмена информацией ДКОИ, являющийся советским вариантом кода EBCDIC, нарушает строгую упорядоченность в случае использования русских букв. Код ДКОИ и его отличия от кода EBCDIC приведены в приложении 5..
СРАВНЕНИЕ СИМВОЛОВ ПО МАСКЕ
CLM R1,M3,D2(B2) [RS]
+--------------------------------------+
¦ BB ¦ R1 ¦ M3 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Второй операнд сравнивается с первым операндом с помощью маски, и по результату сравнения устанавливается признак результата.
В качестве маски используется содержимое поля M3, занимающее биты 12-15 кода команды. Четыре бита маски слева направо соответствуют четырем байтам, находящимся в общем регистре, заданном полем R1. Байты, соответствующие единичным битам маски, рассматриваются как непрерывное поле, которое сравнивается со вторым операндом. Второй операнд является непрерывным полем в памяти, длина которого в байтах равна числу единичных битов маски. Адрес второго операнда - это адрес левого байта указанного поля. Байты в общем регистре, соответствующие нулевым битам маски, в операции не участвуют.
Сравниваемые операнды рассматриваются как двоичные величины без знака, и любые коды являются допустимыми. Операция выполняется слева направо.
Если маска не равна нулю, особые случаи, связанные с обращением к памяти за операндом, фиксируются только для того числа байтов, которое задано маской. Однако если доступная часть заданного операнда позволяет завершить операцию, то нельзя заранее сказать, будет ли зафиксирован особый случай, относящийся к недоступной части операнда. Если маска равна нулю, то особые случаи фиксируются для одного байта.
Признак результата:
0 - выделенные байты первого операнда совпадают со вторым операндом или маска равна нулю;
1 - содержимое выделенного поля первого операнда меньше;
2 - содержимое выделенного поля первого операнда больше;
3 - не бывает.
Программные прерывания:
доступ (выборка второго операнда).
СРАВНЕНИЕ КОДОВ ДЛИННОЕ
CLCL R1,R2 [RR]
+--------------------+
¦ 0F ¦ R1 ¦ R2 ¦
+--------------------+
0 7 8 11 12 15
Первый операнд сравнивается со вторым операндом, и в зависимости от результата сравнения устанавливается признак результата. Считается, что более короткий операнд расширяется с помощью символов-заполнителей.
Каждое из полей R1 и R2 определяет пару общих регистров с четным и нечетным номерами и должно содержать адрес четного регистра. При нарушении этого требования фиксируется особый случай спецификации.
Адреса самых левых байтов первого и второго операндов находятся в разрядах 8-31 общих регистров, заданных полями R1 и R2 соответственно. Длины операндов в байтах содержатся в разрядах 8-31 общих регистров, имеющих адреса, на 1 большие, чем адреса регистров, заданных полями R1 и R2. Биты 0-7 регистра R2+1 содержат символ-заполнитель, а содержимое битов 0-7 регистров R1, R1+1 и R2 игнорируется.
Сравниваемые операнды рассматриваются как двоичные величины без знака, и любые коды являются допустимыми. Сравнение начинается с левого конца обоих полей и идет слева направо. Операция заканчивается, как только будет обнаружено несовпадение или достигнут конец более длинного операнда. Если операнды имеют разную длину, то для выполнения сравнения более короткий операнд расширяется с помощью символа-заполнителя.
Если длина обоих операндов равна нулю, операнды считаются равными.
Выполнение команды может быть прервано. Если прерывание происходит после завершения элемента операции, не являющегося последним, содержимое регистров R1+1 и R2+1 уменьшается на число уже сравненных байтов, а содержимое регистров R1 и R2 увеличивается на это же число, так что при повторном выполнении команды сравнение возобновляется с точки прерывания.
При прерывании старшие байты в регистрах R1 и R2 устанавливаются равными нулю, значение старших байтов в регистрах R1+1 и R2+1 остается без изменения и значение признака результата не предсказуемо. Если операция прервана после того, как уже обработан весь более короткий операнд, то поле счетчика этого операнда равно нулю, а его адрес соответствующим образом изменен.
Если операция заканчивается из-за несовпадения, то при ее завершении поля счетчиков и адресов указывают первый не совпавший байт. Содержимое разрядов 8-31 регистров R1+1 и R2+1 уменьшается на число совпавших байтов, за исключением случая, когда несовпадение относится к символу-заполнителю; при этом поле счетчика более короткого операнда устанавливается равным нулю. Содержимое разрядов 8-31 регистров R1 и R2 увеличивается на то же число, на которое уменьшены поля счетчиков. Если оба операнда с учетом возможного использования символа-заполнителя равны, то при завершении операции оба поля счетчика устанавливаются равными нулю, а адреса увеличиваются на соответствующие начальные значения счетчиков. Биты 0-7 в регистрах R1 и R2 устанавливаются равными нулю, включая случай, когда одно или оба первоначальных значения счетчиков равны нулю. Содержимое битов 0-7 регистров R1+1 и R2+1 остается без изменения.
Если какой-либо операнд задан таким образом, что его часть недоступна для выборки, однако доступная часть операнда позволяет завершить операцию, то нельзя заранее сказать, будет ли зафиксирован особый случай, относящийся к недоступной части операнда.
Если значение поля счетчика какого-либо операнда равно нулю, никакие особые случаи доступа для этого операнда не фиксируются.
Признак результата:
0 - операнды равны или оба они имеют нулевую длину;
1 - первый операнд меньше;
2 - первый операнд больше;
3 - не бывает.
Программные прерывания:
доступ (выборка первого или второго операнда);
спецификация.
Замечания по программированию
Если поля R1 и R2 задают одну и ту же пару регистров, то устанавливается признак результата, равный нулю, и особые случаи защиты и адресации, возможные при таком задании операндов, фиксируются.
В тех случаях, когда команда СРАВНЕНИЕ КОДОВ ДЛИННОЕ должна выполняться с помощью команды ВЫПОЛНИТЬ, необходимо принимать специальные меры предосторожности. Они рассматриваются в замечаниях по программированию, относящихся к команде ВЫПОЛНИТЬ.
Дополнительные сведения приведены в замечаниях по программированию, относящихся к команде ПЕРЕСЫЛКА ДЛИННАЯ.
ПРЕОБРАЗОВАНИЕ В ДВОИЧНУЮ
CVB R1,D2(X2,B2) [RX]
+--------------------------------------+
¦ 4F ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Второй операнд преобразуется из десятичной системы счисления в двоичную, и результат помещается на место первого операнда. Как до преобразования, так и после него число рассматривается как целое со знаком, выровненное по правой границе поля.
Второй операнд имеет упакованный десятичный формат. Он проверяется на допустимость кодов знака и цифр. Наличие недопустимых кодов фиксируется как особый случай, относящийся к данным, и вызывает программное прерывание. Десятичный операнд занимает в памяти 8 байтов. Четыре младших бита поля используются для представления знака. Остальные 60 битов содержат 15 цифр в двоично-десятичном коде. Упакованный формат десятичных данных описан в главе 10.
Результат преобразования помещается в общий регистр, заданный полем R1. Наибольшее число, которое может быть преобразовано и помещено в общий регистр, равно 2147483647; наименьшее число равно -2147483648. Для любого десятичного числа, выходящего за указанные пределы, операция преобразования завершается тем, что в регистр помещаются 32 младших бита. Такой случай классифицируется как особый случай деления с фиксированной точкой и вызывает программное прерывание. Если второй операнд был отрицательным, то для представления младшей части результата используется дополнительный код.
Признак результата не изменяется.
Программные прерывания:
доступ (выборка второго операнда);
данные;
деление с фиксированной точкой.
ПРЕОБРАЗОВАНИЕ В ДЕСЯТИЧНУЮ
CVD R1,D2(X2,B2) [RX]
+--------------------------------------+
¦ 4E ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Первый операнд преобразуется из двоичной системы счисления в десятичную, и результат помещается на место второго операнда. Как до преобразования, так и после него число рассматривается как целое со знаком, выровненное по правой границе поля.
Результат операции помещается в ячейку памяти, определяемую адресом второго операнда, и имеет упакованный десятичный формат, описанный в главе 10. Результат занимает в памяти 8 байтов. Младшие 4 бита этого поля используются для представления знака. Положительный знак кодируется комбинацией 1100, отрицательный - комбинацией 1101. Остальные 60 разрядов содержат 15 цифр в двоично-десятичном коде.
Число, подлежащее преобразованию, берется из общего регистра и представляет собой целое число со знаком, состоящее из 32 разрядов, включая знаковый. Так как для десятичного эквивалента двоичного 31-разрядного числа отводится 15 десятичных цифр, переполнение возникнуть не может.
Признак результата не изменяется.
Программные прерывания:
доступ (запись второго операнда).
ДЕЛЕНИЕ
DR R1,R2 [RR]
+--------------------+
¦ 1D ¦ R1 ¦ R2 ¦
+--------------------+
0 7 8 11 12 15
D R1,D2(X2,B2) [RX]
+--------------------------------------+
¦ 5D ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Делимое (первый операнд) делится на делитель (второй операнд), и частное с остатком помещается на место делимого.
Делимое представляет собой целое число со знаком, состоящее из 64 разрядов, включая знаковый, и располагается в паре смежных регистров с четным и нечетным номерами, заданной полем R1 кода команды. Если в поле R1 указан нечетный номер регистра, имеет место особый случай спецификации. Остаток со знаком, состоящий из 32 разрядов, включая знаковый, и частное со знаком, состоящее из 32 разрядов, включая знаковый, помещаются на место делимого в регистры с четным и нечетным номерами соответственно. Делитель представляет собой целое число со знаком, состоящее из 32 разрядов, включая знаковый.
Знак частного определяется по правилам алгебры. Остаток имеет тот же знак, что и делимое, однако нулевой остаток и нулевое частное всегда положительны. Если соотношение между величинами делимого и делителя таково, что для выражения частного со знаком не хватает 32 разрядов, отмечается особый случай деления с фиксированной точкой (происходит программное прерывание, деление не выполняется и делимое в общих регистрах остается без изменения).
Признак результата не изменяется.
Программные прерывания:
доступ (выборка второго операнда в команде D);
спецификация;
деление с фиксированной точкой.
ИСКЛЮЧАЮЩЕЕ ИЛИ
XR R1,R2 [RR]
+--------------------+
¦ 17 ¦ R1 ¦ R2 ¦
+--------------------+
0 7 8 11 12 15
X R1,D2(X2,B2) [RX]
+--------------------------------------+
¦ 57 ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
XI D1(B1),I2 [SI]
+-------------------------------+
¦ 97 ¦ I2 ¦ B1 ¦ D1 ¦
+-------------------------------+
0 7 8 15 16 19 20 31
XC D1(L,B1),D2(B2) [SS]
+----------------------------------------------------+
¦ D7 ¦ L ¦ B1 ¦ D1 ¦ B2 ¦ D2 ¦
+----------------------------------------------------+
0 7 8 15 16 19 20 31 32 35 36 47
Поразрядная сумма по модулю 2 (ИСКЛЮЧАЮЩЕЕ ИЛИ) первого и второго операндов помещается на место первого операнда.
Операнды обрабатываются как логические величины, не имеющие внутренней структуры. операция выполняется над соответствующими парами битов. Бит результата устанавливается в единицу, если значения соответствующих битов операндов не совпадают; в противном случае этот бит результата устанавливается в нуль.
В случае команды XC поля операндов обрабатываются слева направо. Если операнды перекрываются, результат получается таким, как если бы операнды обрабатывались побайтно и каждый байт результата записывался в память сразу же после выборки нужного байта операнда.
Признак результата:
0 - результат равен нулю;
1 - результат не равен нулю;
2 - не бывает;
3 - не бывает.
Программные прерывания:
доступ (выборка второго операнда в командах X и XC, выборка и запись в память первого операнда в командах XI и XC).
Замечания по программированию
Команда ИСКЛЮЧАЮЩЕЕ ИЛИ может быть использована для инвертирования бита - операции, особенно полезной для проверки и установки программных двоичных переключателей.
Если и первый, и второй операнды команды ИСКЛЮЧАЮЩЕЕ ИЛИ являются одним и тем же полем, то после выполнения операции все биты этого поля будут равны нулю.
Для того чтобы поменять местами содержимое поля A и содержимое поля B, не используя вспомогательную буферную область, можно применить следующую процедуру с использованием команды ИСКЛЮЧАЮЩЕЕ ИЛИ. Сначала выполняется команда ИСКЛЮЧАЮЩЕЕ ИЛИ, для которой поле A является первым операндом, а поле B - вторым. Затем выполняется такая же команда, для которой поле B, содержащее свое первоначальное значение, является первым операндом, а поле A, содержащее результат предыдущей операции, - вторым операндом. После этого выполняется еще одна команда ИСКЛЮЧАЮЩЕЕ ИЛИ, для которой поле A, содержащее результат выполнения первой команды, является первым операндом, а поле B, содержащее результат выполнения второй команды, - вторым операндом.
Выполнение команд XI и XC заключается в выборке байта первого операнда из основной памяти и последующей записи в память нового значения. Запись конкретного байта не обязательно производится сразу же после его выборки. Отсюда следует, что команда ИСКЛЮЧАЮЩЕЕ ИЛИ не может использоваться для обновления содержимого разделяемой ячейки основной памяти без учета возможных непредвиденных последствий, если существует вероятность того, что другой процессор в это время может производить изменение содержимого указанной ячейки. В случае команды XI в память записывается только один байт.
ВЫПОЛНИТЬ EX R1,D2(X2,B2) [RX]
+--------------------------------------+
¦ 44 ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Команда, выбранная по адресу второго операнда, модифицируется с помощью содержимого общего регистра, заданного полем R1, и затем выполняется.
Модификация проводится путем логического сложения битов 8-15 кода команды, указанной адресом перехода, с битами 24-31 общего регистра, заданного полем R1. Исключение составляет случай, когда задан регистр 0. Это означает, что модификация не производится. Выполняемая команда может иметь длину в 2, 4 или 6 байтов. Логическое сложение не изменяет ни содержимого общего регистра, заданного полем R1, ни команды в памяти, и производится только при дешифрации команды, которая должна быть выполнена.
Выполнение команды, на которую указывает команда ВЫПОЛНИТЬ, и обработка особых случаев производятся точно так же, как если бы указанная команда встретилась в обычной последовательности команд. Сказанное не относится к установке адреса следующей команды и кода длины команды.
Адрес команды в текущем PSW увеличивается на длину команды ВЫПОЛНИТЬ. Этот продвинутый адрес и код длины команды ВЫПОЛНИТЬ, равный 2, используются в качестве части информации для возврата в том случае, если команда ВЫПОЛНИТЬ указывает на команду ПЕРЕХОД С ВОЗВРАТОМ. Если команда ВЫПОЛНИТЬ указывает на команду перехода и условия перехода удовлетворены, продвинутый адрес команды в текущем PSW замещается адресом перехода, заданным в указанной команде.
Если команда, на которую указывает команда ВЫПОЛНИТЬ, является также командой ВЫПОЛНИТЬ, фиксируется особый случай, относящийся к команде ВЫПОЛНИТЬ, и операция подавляется. Исполнительный адрес, заданный в команде ВЫПОЛНИТЬ, должен быть четным; в противном случае иначе фиксируется особый случай спецификации.
Признак результата может быть установлен в зависимости от результата выполняемой команды.
Программные прерывания:
команда ВЫПОЛНИТЬ указывает на команду ВЫПОЛНИТЬ;
доступ (выборка второго операнда);
спецификация.
Замечания по программированию
Наличие модификации команды, указанной в команде ВЫПОЛНИТЬ, с помощью 8 разрядов из общего регистра позволяет косвенным путем задавать длину, индекс, маску, непосредственные данные, а также регистры для арифметических операций.
Если команда ВЫПОЛНИТЬ указывает на команду перехода и переход происходит, код длины команды остается равным 2.
Особый случай адресации или спецификации может быть вызван как самой командой ВЫПОЛНИТЬ, так и командой, на которую она указывает.
Если команда ВЫПОЛНИТЬ должна быть применена для выполнения прерываемой команды и если при выполнении последней изменяется содержимое некоторых общих регистров, то обычно не следует задавать эти регистры в полях R1, X2 или B2 команды ВЫПОЛНИТЬ, так как при возобновлении выполнения после прерывания или в случае повторной выборки команды в отсутствие прерывания команда ВЫПОЛНИТЬ будет использовать обновленное содержимое регистров, задаваемых полями R1, X2 или B2. Обычно не следует также допускать, чтобы сама команда ВЫПОЛНИТЬ была расположена в ячейках результата прерываемой команды, на которую она указывает, так как для возобновления выполнения может потребоваться повторная выборка и расшифровка команды ВЫПОЛНИТЬ.
ПРОЧИТАТЬ СИМВОЛ
IC R1,D2(X2,B2) [RX]
+--------------------------------------+
¦ 43 ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Один байт выбирается из ячейки памяти, указанной адресом второго операнда, и помещается в биты 24-31 общего регистра, заданного полем R1. Содержимое остальных разрядов этого регистра не изменяется.
Признак результата не изменяется.
Программные прерывания:
доступ (выборка второго операнда).
ПРОЧИТАТЬ СИМВОЛЫ ПО МАСКЕ
ICM R1,M3,D2(B2) [RS]
+--------------------------------------+
¦ BF ¦ R1 ¦ M3 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Байты выбираются из смежных ячеек памяти, начиная с ячейки, указанной адресом второго операнда, и с помощью маски заносятся в общий регистр, заданный полем R1.
В качестве маски используется содержимое поля M3, занимающего в коде команды разряды 12-15. Четыре бита маски соответствуют слева направо четырем позициям байтов общего регистра, заданного полем R1. Позиции байтов регистра, соответствующие единичным битам маски, заполняются (в порядке возрастания номеров байтов) байтами второго операнда. Байты выбираются из смежных ячеек памяти, начиная с ячейки, указанной адресом второго операнда. Длина второго операнда в байтах равна числу единичных битов маски. Байты в общем регистре, соответствующие нулевым битам маски, остаются без изменения.
В зависимости от значения маски и от значений прочитанных битов устанавливается признак результата. Если маска равна нулю или все прочитанные биты равны нулю, устанавливается признак результата, равный нулю. Если не все прочитанные биты равны нулю, признак результата устанавливается в соответствии со значением крайнего левого бита операнда в памяти: если этот бит равен единице, признак результата устанавливается равным 1, чтобы отразить отрицательное алгебраическое значение; если этот бит равен нулю, признак результата устанавливается равным 2, чтобы отразить положительное алгебраическое значение.
Если маска не равна нулю, особые случаи, связанные с доступом к памяти за операндом, фиксируются только для того числа байтов, которое задано маской. Если маска равна нулю, то возникающие особые случаи фиксируются для одного байта.
Признак результата:
0 - все прочитанные биты равны нулю или маска равна нулю;
1 - первый бит прочитанного поля равен единице;
2 - первый бит прочитанного поля равен нулю и не все прочитанные биты равны нулю;
3 - не бывает.
Программные прерывания:
доступ (выборка второго операнда).
Замечания по программированию
Правила установки признака результата для команды ПРОЧИТАТЬ СИМВОЛЫ ПО МАСКЕ таковы, что если маска задана комбинацией 1111, то выполнение команды приводит к установке такого же признака результата, как и в случае команды ЗАГРУЗКА И ПРОВЕРКА.
ЗАГРУЗКА
LR R1,R2 [RR]
+--------------------+
¦ 18 ¦ R1 ¦ R2 ¦
+--------------------+
0 7 8 11 12 15
L R1,D2(X2,B2) [RX]
+--------------------------------------+
¦ 58 ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Второй операнд помещается без изменения на место первого операнда.
Признак результата не изменяется.
Программные прерывания:
доступ (выборка второго операнда в команде L).
ЗАГРУЗКА АДРЕСА
LA R1,D2(X2,B2) [RX]
+--------------------------------------+
¦ 41 ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Адрес, заданный полями X2, B2 и D2, помещается в биты 8-31 общего регистра, заданного полем R1. В биты 0-7 этого регистра записываются нули. Вычисление адреса происходит по правилам адресной арифметики.
Обращения к памяти за операндами отсутствуют, и никакие проверки на особые случаи доступа к памяти, связанные с данным адресом, не производятся.
Признак результата не изменяется.
Программные прерывания отсутствуют.
Замечания по программированию
В полях R1, X2 и B2 можно задавать один и тот же общий регистр. Исключение составляет общий регистр 0, который может быть указан только в поле R1. Таким образом, к младшим 24 разрядам любого общего регистра, за исключением нулевого, можно прибавить значение поля D2 данной команды. Для этого регистр, к содержимому которого нужно прибавить значение D2, должен быть задан в поле R1, а также либо в поле X2 (с B2, равным нулю), либо в поле B2 (с X2, равным нулю).
ЗАГРУЗКА И ПРОВЕРКА
LTR R1,R2 [RR]
+--------------------+
¦ 12 ¦ R1 ¦ R2 ¦
+--------------------+
0 7 8 11 12 15
Второй операнд помещается без изменения на место первого операнда. В зависимости от знака и величины второго операнда устанавливается соответствующий признак результата.
Признак результата:
0 - результат равен нулю;
1 - результат меньше нуля;
2 - результат больше нуля;
3 - не бывает.
Программные прерывания отсутствуют.
Замечания по программированию
Если поля R1 и R2 задают один и тот же регистр, эта операция эквивалентна проверке операнда без перемещения данных.
ЗАГРУЗКА ДОПОЛНЕНИЯ
LCR R1,R2 [RR]
+--------------------+
¦ 13 ¦ R1 ¦ R2 ¦
+--------------------+
0 7 8 11 12 15
Дополнительный код второго операнда помещается на место первого операнда.
Попытка получить дополнительный код для наибольшего отрицательного числа вызывает переполнение; число остается без изменения. Переполнение вызывает программное прерывание, если бит маски переполнения в операции с фиксированной точкой равен единице.
Признак результата:
0 - результат равен нулю;
1 - результат меньше нуля;
2 - результат больше нуля;
3 - переполнение.
Замечания по программированию
Если делается попытка получить дополнительный код нулевого значения, это значение не изменяется.
ЗАГРУЗКА ПОЛУСЛОВА
LH R1,D2(X2,B2) [RX]
+--------------------------------------+
¦ 48 ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Второй операнд помещается на место первого операнда. Второй операнд имеет длину 2 байта и рассматривается как целое число со знаком, состоящее из 16 битов, включая знаковый.
После того как второй операнд получен из памяти, но еще не помещен в общий регистр, производится его расширение до 32 битов путем распространения значения знакового разряда на 16 старших битов.
Признак результата не изменяется.
Программные прерывания:
доступ (выборка второго операнда).
ЗАГРУЗКА ГРУППОВАЯ
LM R1,R3,D2(B2) [RS]
+--------------------------------------+
¦ 98 ¦ R1 ¦ R3 ¦ B2 ¦ D2 ¦
+--------------------------------------+
0 7 8 11 12 15 16 19 20 31
Общие регистры, начиная с регистра, заданного полем R1, и кончая регистром, заданным полем R3, загружаются из ячеек памяти, определяемых адресом второго операнда.
Область памяти, содержимое которой пересылается в общие регистры, начинается с ячейки, определяемой адресом второго операнда, и содержит столько слов, сколько необходимо, чтобы загрузить указанные регистры. Общие регистры загружаются в порядке возрастания их адресов, начиная с регистра, заданного полем R1, и кончая регистром, заданным полем R3. При этом за регистром с адресом 15 следует регистр с адресом 0.
Признак результата не изменяется.
Программные прерывания:
доступ (выборка второго операнда).
Замечания по программированию
Допускаются любые комбинации адресов общих регистров, определяемых в команде полями R1 и R3. Если адреса регистров совпадают, передается только одно слово. Если адрес, заданный в поле R3, меньше адреса, заданного в поле R1, последовательность используемых регистров проходит через 15 и 0.
ЗАГРУЗКА ОТРИЦАТЕЛЬНАЯ
LNR R1,R2 [RR]
+--------------------+
¦ 11 ¦ R1 ¦ R2 ¦
+--------------------+
0 7 8 11 12 15
Дополнительный код абсолютного значения второго операнда помещается на место первого операнда.
Результат отличается от второго операнда только для положительных чисел; отрицательные числа остаются без изменения. Нуль, имеющий положительный знак, остается без изменения.
Признак результата:
0 - результат равен нулю;
1 - результат меньше нуля;
2 - не бывает;
3 - не бывает.
Программные прерывания отсутствуют.
ЗАГРУЗКА ПОЛОЖИТЕЛЬНАЯ
LPR R1,R2 [RR]
+--------------------+
¦ 10 ¦ R1 ¦ R2 ¦
+--------------------+
0 7 8 11 12 15
Абсолютное значение второго операнда помещается на место первого операнда.
При выполнении операции над отрицательными числами берется их дополнение; положительные числа остаются без изменения.
Переполнение возникает, когда производится попытка получения дополнения для наибольшего отрицательного числа; в этом случае число остается без изменения. Переполнение вызывает программное прерывание, если бит маски переполнения в операции с фиксированной точкой равен единице.
Признак результата:
0 - результат равен нулю;
1 - не бывает;
2 - результат больше нуля;
3 - переполнение.
Программные прерывания:
переполнение с фиксированной точкой.
ОБРАЩЕНИЕ К МОНИТОРУ
MC D1(B1),I2 [SI]
+-------------------------------+
¦ AF ¦ I2 ¦ B1 ¦ D1 ¦
+-------------------------------+
0 7 8 15 16 19 20 31
Эта команда вызывает программное прерывание, если соответствующий бит маски монитора в управляющем регистре 8 равен единице.
Разряды 12-15 поля I2 содержат двоичное число, задающее один из 16 классов монитора. Если бит маски монитора, соответствующий классу, заданному полем I2, равен единице, то происходит программное прерывание для обращения к монитору. Содержимое поля I2 записывается в ячейку 149 основной памяти; в ячейку 148 записываются нули. Бит 9 кода программного прерывания устанавливается равным единице.
Адрес, заданный полями B1 и D1, представляет собой код обращения к монитору, который помещается в ячейки 157-159. Вычисление адреса происходит по правилам адресной арифметики. Никакие проверки на особые случаи доступа, связанные с данным адресом, не производятся. В ячейку 156 записываются нули.
Если бит маски монитора, соответствующий классу, заданному разрядами 12-15 кода данной команды, равен нулю, то прерывание не происходит, и выполнение команды эквивалентно отсутствию операции.
В разрядах 8-11 кода данной команды должны содержаться нули. При нарушении этого требования фиксируется особый случай спецификации, и операция подавляется.
Признак результата не изменяется.
Программные прерывания:
спецификация.
Замечания по программированию
Функция монитора может быть полезной для осуществления различных измерений. Например, с помощью команды ОБРАЩЕНИЕ К МОНИТОРУ, вставленных в программы, можно накапливать информацию слежения, показывающую, какие программы выполнялись: учетную информацию, показывающую частоту использования отдельных программ, и информацию об использовании времени, показывающую продолжительность выполнения отдельных программ.
С каждой командой ОБРАЩЕНИЕ К МОНИТОРУ может быть связана определенная описательная информация. Для этой цели, помимо указания номера класса монитора, предусмотрено использование кода обращения к монитору. При отсутствии базового регистра возможны 4096 различных кодов обращения к монитору. Если же используется базовый регистр, задаваемый ненулевым значением поля B1, то каждое прерывание для обращения к монитору сопровождается кодом, состоящим из 24 битов.
Маски монитора являются средством, позволяющим запрещать все прерывания для обращения к монитору или разрешать такие обращения во всех или только в некоторых классах.
ПЕРЕСЫЛКА
MVI D1(B1),I2 [SI]
+-------------------------------+
¦ 92 ¦ I2 ¦ B1 ¦ D1 ¦
+-------------------------------+
0 7 8 15 16 19 20 31
MVC D1(L,B1),D2(B2) [SS]
+----------------------------------------------------+
¦ D2 ¦ L ¦ B1 ¦ D1 ¦ B2 ¦ D2 ¦
+----------------------------------------------------+
0 7 8 15 16 19 20 31 32 35 36 47
Второй операнд помещается на место первого.
В случае команды MVC поле каждого операнда обрабатывается слева направо. Если операнды перекрываются, результат операции получается таким же, как если бы операнды обрабатывались по одному байту за один раз и каждый байт результата записывался в память сразу же после выборки нужного байта операнда.
Признак результата не изменяется.
Программные прерывания:
доступ (выборка второго операнда в команде MVC, запись в память на место первого операнда в командах MVI и MVC).
Замечания по программированию
Один символ можно распространить по всему полу, задав начало поля первого операнда на длину символа правее начала второго операнда.
ПЕРЕСЫЛКА ДЛИННАЯ
MVCL R1,R2 [RR]
+--------------------+
¦ 0E ¦ R1 ¦ R2 ¦
+--------------------+
0 7 8 11 12 15
Второй операнд помещается на место первого при условии, что перекрытие полей операндов не влияет на окончательное содержимое поля первого операнда. Если младшие позиции байтов поля первого операнда остались незаполненными, в них помещается символ-заполнитель.
Каждое из полей R1 и R2 определяет пару общих регистров с четным и нечетным номерами и должно содержать адрес четного регистра. При нарушении этого требования фиксируется особый случай спецификации.
Адреса самых левых байтов первого и второго операндов находятся в битах 8-31 общих регистров, заданных полями R1 и R2 соответственно. Длины операндов в байтах содержатся в битах 8-31 общих регистров с номерами R1+1 и R2+1. Биты 0-7 регистра R2+1 содержат символ-заполнитель, а содержимое битов 0-7 регистров R1, R1+1 и R2 игнорируется.
Пересылка начинается с левого конца обоих полей и идет слева направо. Операция заканчивается после того, как в поле первого операнда переслано такое количество байтов, которое задано в битах 8-31 регистра R1+1. Если второй операнд короче первого, то в оставшиеся младшие позиции байтов первого операнда помещается символ-заполнитель.
При выполнении команды производится сравнение значений обоих полей счетчиков с целью установки признака результата и производится проверка того, не является ли перекрытие операндов (если оно имеет место) разрушающим. Говорят, что перекрытие операндов является разрушающим, если поле первого операнда используется как источник пересылки после того, как в него уже были пересланы данные. Подразумевается, что проверка на перекрытие производится с использованием логических адресов операндов. Если перекрытие операндов является разрушающим, пересылка не производится и устанавливается признак результата, равный 3.
Второй операнд может пересекать верхнюю границу основной памяти, т.е. содержать ячейку с максимальным адресом 16 777 215, за которой следует ячейка с адресом 0, или же не пересекать указанной границы. В зависимости от этого пересылка производится в следующих случаях:
1. Если второй операнд не пересекает верхней границы памяти, пересылка будет иметь место в тех случаях, когда адрес старшего байта первого операнда равен или меньше адреса старшего байта второго операнда или когда адрес старшего байта первого операнда больше адреса самого младшего байта второго операнда, участвующего в операции.
2. Если второй операнд пересекает верхнюю границу памяти, пересылка будет иметь место в том случае, когда адрес старшего байта первого операнда равен или меньше адреса старшего байта второго операнда и одновременно больше адреса самого младшего байта второго операнда, участвующего в операции.
Самый младший байт второго операнда определяется с помощью счетчика операндов с минимальным содержимым.
Если значение счетчика, находящееся в битах 8-31 регистра R1+1, равно нулю, пересылка не производится, а признак результата устанавливается равным 0 или 1 в зависимости от соотношения значений счетчиков.
Выполнение команды может быть прервано. Если прерывание происходит после завершения элемента операции, не являющегося последним, содержимое регистров R1+1 и R2+1 уменьшается на число пересланных байтов, а содержимое регистров R1 и R2 увеличивается на это же число, так что при повторном выполнении команда пересылки возобновляется с точки прерывания. При прерывании старшие байты в регистрах R1 и R2 устанавливаются равными нулю; значения старших байтов в регистрах R1+1 и R2+1 остаются без изменения, а значение признака результата непредсказуемо. Если операция прервана во время засылки символов-заполнителей, то поле счетчика в регистре R2+1 равно нулю, адрес в регистре R2 увеличен на первоначальное значение счетчика в регистре R2+1, а значения в регистрах R1 и R1+1 отражают степень заполнения.
Если сама команда пересылки находится в поле первого операнда, то необходимо учитывать тот факт, что данная команда может повторно выбираться из памяти и расшифровываться даже в отсутствие прерывания во время выполнения. Нельзя заранее сказать, в какой именно момент выполнения может произойти такая повторная выборка.
При завершении операции счетчик в регистре R1+1 устанавливается равным нулю, а адрес в регистре R1 увеличивается на первоначальное значение счетчика в регистре R1+1. Значение счетчика в регистре R2+1 уменьшается на число байтов, пересланных из поля второго операнда, а адрес в регистре R2 увеличивается на это же число. Содержимое битов 0-7 регистров R1 и R2 устанавливается равным нулю, включая случаи, когда одно или оба первоначальных значения счетчиков равны нулю или когда признак результата устанавливается равным 3. Содержимое битов 0-7 регистров R1+1 и R2+1 остается без изменения.
Если счетчик, заданный в битах 8-31 регистра R1+1, равен нулю или устанавливается признак результата, равный 3, то никакие особые случаи доступа к операндам не фиксируются. Если счетчик, заданный в битах 8-31 регистра R2+1, равен нулю, то не фиксируются никакие особые случаи доступа к ячейкам второго операнда. Аналогично, если второй операнд больше первого, то не фиксируются возможные особые случаи доступа, связанные с избыточной частью второго операнда.
Признак результата:
0 - счетчики первого и второго операндов равны;
1 - счетчик первого операнда меньше;
2 - счетчик второго операнда больше;
3 - пересылка не производилась из-за разрушающего перекрытия операндов.
Программные прерывания:
Подобные документы
Анализ двоичной, восьмеричной и шестнадцатеричной систем счисления и перевода десятичных чисел. Форматы хранения чисел с плавающей точкой. Программа для преобразования массива констант в формат числа с плавающей точкой на эмуляторе микро-ЭВМ СМ-1800.
курсовая работа [266,9 K], добавлен 24.12.2013Общая характеристика и преимущество использования двоично-десятичных чисел с плавающей точкой. Разработка цифрового автомата. Функциональное назначение выводов корпуса МК51, арифметико-логического устройства, портов. Примеры деления данных чисел.
курсовая работа [719,3 K], добавлен 12.09.2015Сущность и роль бухгалтерской отчетности. Характеристика хозяйственных операции и системы обработки данных в первичные учетные документы. Особенности логической структуры реляционной базы данных. Описание методов работы с информационной системой.
курсовая работа [1,1 M], добавлен 26.04.2015Операции, осуществляемые при реализации алгоритмов цифровой обработки сигналов. Применение процессора ADSP-2106x для операций с фиксированной и плавающей точкой. Исключения при выполнении операций с плавающей точкой, режимы и границы округления.
реферат [35,2 K], добавлен 13.11.2009Основные форматы данных и их представление. Запись чисел в формат с плавающей точкой. Вычитание чисел в формате с плавающей точкой. Регистры операндов и результата, размером формата числа с плавающей точкой, двойной точности. Поля смещённого порядка.
курсовая работа [78,9 K], добавлен 09.09.2014Проектирование блоков устройства контроля по модулю три матричного умножителя с сокращением вычислений для обработки мантисс чисел с плавающей точкой. Методика выполнения арифметических операций, порядок обработки мантисс по n-разрядным операндам.
курсовая работа [125,2 K], добавлен 24.09.2010Периоды применения средств вычислительной техники. Переход к новому поколению электронно-вычислительных машин. Системы, основанные на знаниях. Экспертные системы и искусственный интеллект. Этапы обработки данных на ЭВМ. Иерархическая структура знания.
презентация [170,6 K], добавлен 14.08.2013Общее представление о записи данных. Виды регистров и типов данных с плавающей точкой. Модель выполнения программы SIMD. Формат данных в памяти регистра с плавающей точкой. Состояние и управление потоковым разрешением. Поле управления округлением.
реферат [1,1 M], добавлен 06.01.2011Понятие машинной команды как закодированного по определенным правилам указания микропроцессору на выполнение некоторой операции или действия. Элементы машинных команд (код операции, операнд) и их виды (передачи данных, управления, арифметико-логические).
презентация [120,6 K], добавлен 14.10.2013Арифметические команды языка Assembler в архитектуре x86. Организация ветвлений и циклов в программах. Ввод строк с клавиатуры и команды пакетной обработки (строковые команды). Алгоритм вывода на экран в текстовом режиме с использованием средств BIOS.
контрольная работа [18,0 K], добавлен 05.07.2014