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



Так бу­дет в случае, когда библиотека еще не загружалась в память. Но если она уже там, операционной системе остается только скорректировать адреса процедур, увеличить счетчик пользователей DLL на единицу и отправить программу процессору.

Подключив к программе myio.dll, вы, наверное, поняли, что и раньше пользова­лись динамическими библиотеками. Строка

includelib \myasm\11b\kernel32.11b в листинге 8.3, очевидно, говорит о подключении динамической библиотеки kernel32.dll. Разница только в том, что файл kernel32.dll находится в папке c:\windows\system32\, то есть принадлежит операционной системе Windows. Те­перь мы понимаем, что система Windows — это во многом собрание динамиче­ских библиотек kernel32.dll, useg32.dll, gdi32.dll и т. д., которыми пользуются все запускаемые программы.

Работа с функциями АЛУ

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

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

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

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


назад далее