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




Теперь можно вызвать саму процедуру StrDisp, но директива invoke уже не по­дойдет, потому что нам, по сути, известен только адрес процедуры, полученный с помощью GetProcAddress, а не ее имя. Поэтому ее параметры заталкиваются в стек инструкциями push, а сама процедура вызывается инструкцией call, ис­пользующей косвенную адресацию: call [StrDispAddr]

Вычислительные команды

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

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

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

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


назад далее