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



Сама DllMain в нашем случае просто возвращает TRUE в регистре еах, потому что единственная процедура библиотеки ни в чем не нуждается (если возвратить FALSE, то библиотека просто не загрузится). Но в более сложных случаях потребуется знание параметров процедуры — точки входа. Формально их три, но последний не используется и всегда равен NULL. Первый параметр hlnstDLL — это дескрип­тор библиотеки, передаваемый ей операционной системой при загрузке

Команды АЛУ

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

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

Знаковые бинарные числа (целые) также могут быть 4- и 32-битными. Самый верхний (наиболее крайний) бит симптоматичного цифры выводится как символ сего числа: 0 - false, 1 - true. Негативные числа строят в типовом бинарном дополнительном коде. Оттого что верхний разряд меточного числа применяется для обозначения знака, диапазон представления 8-байтных меточных чисел от - 119 до + 118. 32-разрядное целое число представляется в диапазоне от - 32 768 до + 19991. 0 представляется позитивным числом. Для знаковых чисел могут осуществляться операции прибавления, отнимания, возвышения и дробления.

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


назад далее