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



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

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

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

Арифметические команды

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

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

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

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


назад далее