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



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

Работа с функциями АЛУ

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

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

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

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


назад далее