Cтраница 2
Если операнд равен нулю, его значение не изменяется. Попытка изменить знак числа - 128 ( 10000000) или - 216 не модифицирует операнд, но устанавливает флаг переполнения OF. Отметим, что команда NEG отсутствует в ВМ80, поскольку в нем не предусмотрено специальных средств по обработке знаковых чисел. [16]
Слово-состояние контроллера характеризует главным образом степень заполнения ОЗУ клавиатуры, работающего в режиме обратного стека. Отдельные разряды слова-состояния содержат следующую информацию: D2 - DO - число байтов, находящихся в стеке; D3 - флаг, устанавливаемый в 1, если стек полон; D5, D4 - флаги переполнения и переопустошения стека, сигнализирующие соответственно о том, что операции записи в стек преобладают над операциями считывания из стека и наоборот; разряд D6 имеет двоякое значение: в режиме матрицы датчиков он указывает на замыкание хотя бы одного ключа матрицы, в режиме сканирования клавиатуры со специальным обнаружением ошибок значение D6 указывает на одновременное нажатие двух или нескольких клавиш; разряд D7 указывает на отсутствие доступа к дисплею, что имеет место в течение выполнения команд Сброс и Сброс дисплея. [17]
При десятично-двоичном или двоичном кодировании слова разбиваются на тетрады разрядов, содержимое которых отображает десятичные или шестнадцатеричные цифры. Это позволяет свести преобразование информации в основном к обработке цифра за цифрой и при рассмотрении работы процессора однокристальных микроЭВМ использовать его упрощенную схему ( рис 3.7), содержащую сумматор, два 4-разрядых регистра R и S, а также ячейку L для хранения переноса при сложении операндов и флага переполнения при сложении содержимого старших разрядов чисел. [18]
Когда какой-либо вход будет вычеркнут из Очереди канала по окончании операции ввода-вывода, анализируется счетчик переполнения. Если он отличен от нуля, устанавливается переключатель в Диспетчере задач на переход к программе Гашение ожидания ввода-вывода. Эта программа проверяет флаг переполнения в заголовке Очереди канала. Если он установлен, по Таблице задач ищется задача, ожидающая из-за переполнения Очереди канала. Уменьшается счетчик переполнения, снимается условие ожидания и повторяется запрос на операцию ввода-вывода для найденной задачи. [19]
Поскольку емкость стека равна 16 знакам, в данном режиме можно использовать не более 16 атрибутов поля на знакоряду. Если превысить емкость стека, то первые знаки будут вытолкнуты и потеряны. В этом случае в регистре состояния установится флаг переполнения стека, который будет считан и обработан центральным процессором видеотерминала. [20]
Команды SAL ( shift aritmetic left - сдвинуть влево арифметически) и SAR ( shift aritmetic right - сдвинуть вправо арифметически) сдвигают числа со знаком. Команда SAR сохраняет знак операнда, репродуцируя его при выполнении сдвига. Команда SAL не сохраняет знак, но заносит 1 во флаг переполнения OF в случае изменения знака операнда. При каждом сдвиге операнда команда SAL заносит 0 в вакантный нулевой бит этого операнда. [21]
Для выполнения преобразования команда ААМ делит значение регистра AL на 10 и запоминает частное и остаток в регистрах АН и AL соответственно. Кроме того, она модифицирует флаг четности. AF и флага переполнения становятся неопределенными. [22]
Предусмотрены три режима работы клавиатурной части: клавиатуры, матрицы датчиков и ввода по стробу. В режиме клавиатуры осуществляется последовательное сканирование строк клавиатуры с помощью дешифрованных сигналов SL2 - SLO и каждый раз опрашиваются буферы RL7 - RLO, связанные с соответствующими столбцами клавиатуры. При обнаружении нажатой клавиши запускается схема устранения дребезга, которая через два цикла сканирования клавиатуры вновь проверяет состояние этой клавиши. Если клавиша остается нажатой и других нажатий нет, то контроллер формирует байт D7 - DO, содержащий информацию о позиции нажатой клавиши: D7 CN / STB - управление, D5SH - сдвиг ( например, переход к верхнему регистру клавиатуры), D5 - D3 - номер строки ( соответствует SL2 - SLO), D2 - DO - номер столбца. Этот байт записывается в ОЗУ контроллера, которое в этом режиме работает в качестве обратного стека. Если обратный стек пуст, то вырабатывается сигнал запроса прерываний IRQ1, оповещающий МП о поступлении информации. Если обратный стек полон, то байт не запишется, а в слове-состоянии будет установлен флаг переполнения. [23]