Программирование на JAVA

После пары команд сложения ADD/ADC используется еще одна команда ADC, которая прибавляет 0 к значению в поле PRODUCT. Это необходимо потому, что первая команда ADC сама может вызвать перенос, который последующие команды могут стереть. Поэтому вторая команда ADC прибавит 0, если переноса нет, и прибавит 1, если перенос есть.

Финальная пара команд ADD/ADC не требует дополнительной  команды  ADC,  так как  область  PRODUCT достаточно велика для генерации окончательного результата и переноса на последнем этапе не будет.

Окончательный результат 138А 687С 8Е5С ССЕ6 получится а поле PRODUCT в обратной последовательности байтов в словах.

СДВИГ РЕГИСТРОВОЙ ПАРЫ EDX:EAX

Следующая подпрограмма может быть полезна для сдвига содержимого регистровой пары EDX:EAX вправо или влево. Можно придумать более эффективный метод, но данный пример представляет общий подход  для любого числа циклов (и соответственно сдвигов) в регистре CX. Заметьте, что сдвиг единичного бита за разрядную сетку устанавливает флаг переноса. Сдвиг влево на 4 бита

MOV         ECX,04                                 ;4 цикла

С20:             SHL                EDX,1                        ;EDX на 1 бит влево


<< назад вперед >>