Разделы:


Best links:

Утилита для записи, копирования CD и DVD дисков - неро скачать. Программа Nero Burning Rom.

--------------------------

Команды передачи управления

Время выполнения каждой из команд условных переходов указано для двух случаев: 1) условие выполнено и управление действительно передается в соответствии со смещением, 2) условие не выполнено, так что управление передается следующей команде.

Команды организации циклов. Введены в ЦП для удобства выполнения вычислительных циклов. К ним  относятся  следующие мнемокоды: LOOP (цикл, пока (СХ) не равно 0), LOOPNZ/LOOPNE (цикл, пока не нуль/не равно), LOOPZ/LOOPE(цикл, пока нуль/равно) и JCXZ (переход по нулю в СХ). Каждая из этих команд имеет двухбайтовый формат, во втором байте которого указывается 8-разрядное смещение, используемое для организации перехода. Это смещение рассматривается как число со знаком и перед вычислением адреса перехода оно расширяется со знаком до 16 разрядов.

Используя команды циклов совместно с командами манипуляции элементами строк, можно составлять достаточно сложные программы преобразования строк. Рассмотрим пример составления программы для перевода строки данных, записанных в шестнадцатеричной системе счисления, в некоторый код, для которого перекодировочная таблица находится в памяти с начального адреса, указанного в ВХ, как это требуется для использования команды табличного преобразования кодов XLAT. Пусть далее исходная строка содержит 80 элементов и находится в памяти с относительного начального адреса 100, а строка-результат должна быть размещена с относительного адреса 200. Программа, выполняющая перекодировку исходной строки в строку-результат, при значении флага направления DF=0 будет иметь вид:

                            MOV     SI ,100 MOV     DI ,200 MOV     СХ , 80

TRANSLATE:     LODS

XLAT

STOS

LOOP   TRANSLATE

Здесь использована команда табличного преобразования кодов XLAT, описанная в 1.2.

предыдущаяследующая