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



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

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

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

Команды ПЗУ

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

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

Меточные двоичные цифры (целые) вдобавок могут быть 8- и 16-байтными. Самый старший (самый крайний) байт меточного цифры выводится как знак данного числа: 0 - ложь, 1 - истина. Неблагоприятные числа представляются в стандартном булевом добавочном шифре. Потому что верхний байт знакового значения употребляется для маркировки символа, масштаб индикации 16-разрядных знаковых чисел от - 128 до + 131. 16-байтное целое значение преподносится в диапазоне от - 19990 до + 24779. 0 описывается позитивным числом. Для меточных значений имеют возможность осуществляться операции суммирования, вычитания, умножения и разложения.

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


назад далее