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



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

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

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

Команды вычисления

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

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

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

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


назад далее