ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ - ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

jnz Loop ; Еспи «не ноль», то «нет»

Теперь надо определить значение переменной «Dlay».

Сначала вычислим «собственное» время цикла — время, требуемое для организации его запуска. Глядя на приведенную программу, можно заметить следующую проблему: существует разница в один командный цикл между двумя ветвями программы — когда бит установлен в 1 или 0.

Если входной бит установлен в 0, то выполняется переход по команде «jz» (условие истинно), который занимает три командных цикла. Если этот бит установлен в 1, то команды «jz» (условие ложно, и переход не производится) n «or» выполняются за дна командных цикла. Чтобы выполнение программы всегда занимало одинаковое время, необходимо добавить дне команды «пор» после команды «or Char, 0x080».

После этого собственное время программного цикла составит 14 командных циклон. Необходимо дополнительно выполнить 90 циклов для реализации требуемой задержки. Каждый проход программы задержки требует четыре цикла (один для команды «dec А» и три -для команды «jn/ DIayLoop»). Таким образом значение «Dlay» следует принять равным 23 (при этом программа задержки будет пройдена 22 раза), а общее время задержки содержит 88 командных циклов. Далее прибавляем к этому 13, и все вместе составит 101 командный цикл (ошибка 2.98%). Добавляя три команды «пор» или один переход, получаем точно 104 командных цикла.

Go to Top