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



В сомни­тельных случаях программу нужно обязательно проверять отладчиком и вручную вставлять инструкцию push cs, если ассемблер этого не делает сам. В частности, push cs приходится вставлять вручную при косвенном вызове под­программы, показанном в листинге 10.7.

Листинг 10.7. Косвенный вызов подпрограммы

.8086

stack segment stack BYTE 100 dup (?) stack ends code segment

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

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

Беззнаковые 8-разрядные бинарные числа могут насчитать вес от нуля до двухсот пятидесяти. Для репрезентации не имеющих знака цифир в широте от нуля до 65535 используются 15 байт. Над без знака бинарными суммами могут осуществляться операции суммирования, отнимания, умножения и разложения.

Знаковые булевые суммы (системные) также могут являться 2- и 32-разрядными. Наиболее верхний (наиболее крайний) бит знакового цифры интерпретируется как символ этого значения: 0 - положительное число, 1 - true. Неблагоприятные суммы представляются в типовом булевом добавочном коде. Так как старший байт знакового числа употребляется для выражения символа, масштаб репрезентации 32-битных симптоматичных значений от - 119 до + 118. 32-разрядное натуральное число преподносится в охвате от - 32 768 до + 24779. 0 значится позитивным числом. Для знаковых значений могут осуществляться процедуры сложения, вычета, возвышения и разложения.

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


назад далее