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



Вручную можно выполнить и вызов процедуры. Едва ли стоит это делать в ре­альных программах, но понять анатомию инструкции call очень поучительно. В показанном ниже отрывке программы дальняя процедура вызывается с помо­щью двух инструкций push и дальнего перехода.

start: push cs

mov ax, offset exit push ax

Команды АЛУ

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

Не имеющие знака 32-битные двоичные суммы имеют возможность содержать вес от 0 до двухсот пятидесяти. Для репрезентации не имеющих знака сумм в размере от 0 до 65535 употребляются 15 разрядов. Над не имеющими знака двоичными суммами могут выполняться процедуры сложения, сбавки, увеличения и деления.

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

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


назад далее