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



Сегменты

Пожалуй, самое важное отличие программы, написанной для DOS, от консоль­ного приложения Windows — в способах обращения с памятью. Строка mov dx, offset hello

из листинга 9.1 кажется нам знакомой: по-видимому, в ней адрес начала после­довательности символов Не могу молчать! записывается в регистр dx.

Но ведь dx — 16-битовый регистр и может содержать всего 216 = 65 536 различ­ных адресов, что очень мало даже для такой старой системы как DOS

Команды АЛУ

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

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

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

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


назад далее