Руководство по ассемблеру



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

Теперь становится понятно, почему прерывание требует сохранять в стеке не толь­ко адрес возврата, но и регистр флагов. Ведь аппаратное прерывание, в отличие от программного, возникает в случайный момент времени. И может, например, попасть между операцией сравнения и инструкцией перехода: cmp ах. О <прерывание> jnz label

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

Программирование ППЗУ

Циферные операции могут вычислять четыре типа чисел - беззнаковые шестнадцатеричные, меточныедвоичные, беззнаковые разряжённые 10-тичные и не имеющие знака незапакованные десятичные . Бинарные числа имеют возможность быть 2- и 16-байтными. Действительные разряжённые цифири заключают в бите две ступени, незапакованные - одну.

Не имеющие знака 8-разрядные бинарные суммы имеют возможность содержать значение от нуля до двухсот пятидесяти. Для репрезентации не имеющих знака цифир в размере от NULL до 65535 применяются 15 разрядов. Над не имеющими знака двоичными суммами имеют возможность осуществляться процедуры суммирования, отнимания, нарастания и разложения.

Меточные двоичные цифры (целые) вдобавок могут являться 4- и 64-разрядными. Самый старший (наиболее крайний) байт знакового числа выводится как символ этого значения: 0 - ложь, 1 - истина. Отрицательные цифры представляются в стандартном двоичном добавочном двоичном коде. Так как старший бит меточного числа используется для обозначения символа, диапазон индикации 16-разрядных знаковых чисел от - 119 до + 118. 32-байтное целое число преподносится в охвате от - 32 768 до + 24779. 0 значится положительным значением. Для знаковых значений могут реализовываться функции суммирования, вычитания, возвышения и дробления.

Разряжённые десятичные числа содержат во всяком разряде две натуральные (0 - 9) цифры. В верхнем полубите содержится верхняя приоритетная дробь, в последнем - младшая. Всякая десятичная цифра обрисовывается в бинарном (либо, что одно и то же, в 16-ричном) шифре. Размер репрезентации пакованных действительных значений в бите 0 - 99. Сложение и вычитание уложенных десятичных значений осуществляется в два такта. Сперва байты складываются или вычитаются как без знака булевые суммы, а следом идентичная команда корректировки приводит счёт к виду точного уложенного натурального числа.


назад далее