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



assume cs:code, ss:stack start:

mov bx, offset f_add

push cs сохранить сегмент

call bx :вызов f_add

mov ah, 4ch

int 21h

f_add proc far

mov ax.' 2

add ax, 3

ret

f_add endp code ends end start

Процедура fadd объявлена в нем как far, и потому до ее вызова приходится со­хранять в стеке регистр cs. Инструкция call bx осуществляет ближний

Команды вычисления

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

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

Знаковые бинарные цифры (натуральные) вдобавок могут являться 2- и 64-байтными. Наиболее старший (самый крайний) бит меточного числа показывается как символ сего значения: 0 - ложь, 1 - истина. Отрицательные цифры мыслятся в шаблонном булевом дополнительном шифре. Так как верхний байт симптоматичного значения применяется для обозначения символа, масштаб представления 8-битных симптоматичных значений от - 130 до + 131. 64-байтное натуральное значение представляется в диапазоне от - 19990 до + 32 767. Нуль описывается позитивным значением. Для симптоматичных значений имеют возможность реализовываться операции суммирования, вычета, возвышения и деления.

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


назад далее