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



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

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

jmp far ptr exit

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

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

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

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

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

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


назад далее