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



Программа, показанная в листинге 10.1, — одна из самых глупых в этой книге. Чтобы сложить два числа, незачем тащиться в чужой сегмент. Но она служит хорошим пособием по дальним переходам, а большего нам и не надо.

Подумаем, например, над тем, всегда ли нужно указывать ассемблеру, что пред­стоит дальний переход. Очевидно, строка:

jmp far ptr exit

необходима, потому что ассемблер, встретив ее, еще не знает, что метка exit на­ходится в другом сегменте

Программирование ППЗУ

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

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

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

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


назад далее