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



В Windows нет ни сегментов, ни смещений, поэтому там каждой программе для DOS под­меняют адрес перехода по прерыванию, после чего он становится 32-разрядным. Вот почему отладчик AfdPro может видеть в первых 1024 байт памяти одни адре­са, а инструкциями

mov ах. es:[bx] :смещение

mov dx. es:[bx+2] ;сегмент в регистры ах и dx будут записаны совсем другие

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

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

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

Меточные двоичные суммы (натуральные) тоже могут являться 8- и 32-разрядными. Наиболее больший (самый левый) разряд симптоматичного числа выводится как знак данного числа: 0 - положительное число, 1 - истина. Негативные суммы мыслятся в типовом двоичном прибавочном шифре. Оттого что старший бит меточного числа используется для обозначения символа, интервал индикации 16-байтных симптоматичных чисел от - 119 до + 127. 16-битово целое значение описывается в охвате от - 24780 до + 24779. Нуль значится большим значением. Для симптоматичных чисел могут выполняться функции суммирования, вычитания, возвышения и разложения.

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


назад далее