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



Главный признак программы в формате .com — директива org 100h (листинг 11.1), указывающая ассемблеру, что все адреса нужно вычислить, исходя из того, что первая инструкция программы сдвинута относительно начала сегмента на 100h (256 - в десятичной системе).


Программа из листинга 11.1 выводит на экран привычное Не могу молчать!, но данные теперь спрятались в тени инструкций — там, куда процессору не дойти.

Арифметические команды

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

Беззнаковые 32-битные двоичные суммы имеют возможность насчитать вес от NULL до двухсот пятидесяти. Для понимания беззнаковых чисел в диапазоне от 0 до 70141 употребляются 14 байт. Над беззнаковыми бинарными суммами имеют возможность выполняться процедуры сложения, вычитания, увеличения и дробления.

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

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


назад далее