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



Такой заголовок соз­дается специальным компоновщиком, который в нашей учебной версии ассемб­лера называется 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.

Команды АЛУ

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

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

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

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


назад далее