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



Такой заголовок соз­дается специальным компоновщиком, который в нашей учебной версии ассемб­лера называется Iinkl6.exe. Чтобы приготовить с его помощью программу для DOS, нужен специальный командный файл, показанный в листинге 9.2.

Листинг 9.2. Командный файл dmake.bat для создания DOS-программ

ml /с fcl.asm

linkl6 Xl.obj.Xl.exe....

Как видим, DOS-программа приготовляется тем же ассемблером, но другим компоновщиком. Запятые в командной строке, запускающей Iinkl6.exe, обозна­чают отсутствующие служебные файлы, которые нам не интересны.

Файл dmake.bat удобно поместить в ту же папку, что и amake.bat, создающий консольные приложения. Если сохранить программу из листинга 9.1 в файле I91.asm, то вызов командного файла с параметром 191: dmake 191

создаст программу I91.exe, которая запускается из командной строки FAR так же, как и консольное приложение Windows, и так же выводит на экран строку Не могу молчать!. Но мы-то знаем, что это другая программа, которую Windows исполняет совсем иначе.

Этот компоновщик тоже написан для системы DOS, но отлично чувствует себя в среде Windows.

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

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

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

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

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


назад далее