Script - Страница 121

МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА 8051 - Script

Основные команды условных переходов используют биты состояния в регистре PSW (команды 12.55, 12.56 и 12.57). Эти относительные переходы производятся, если флаг переноса или заданный в команде бит имеет значение 1 или 0. Команда «jbc Bit, Label» интересна тем, что после ее выполнения тестируемый бит сбрасывается в 0, если он был установлен в 1. Эта команда полезна для реализации «семафоров» при организации выполнения задач в ОСРВ. При использовании данной команды тестируемый бит является флагом («семафором»), разрешающим выполнение определенной задачи. Переход к задаче производится, если она свободна (флаг-«семафор» имеет значение 1), после чего устанавливается флаг «занято» (флаг-«семафор» принимает значение 0), запрещающий обращение к задаче до окончания ее выполнения.

Команды перехода по нулевому или ненулевому результату (команда 12.58) проверяют содержимое аккумулятора на нуль. Это означает, что содержимое аккумулятора, определяющее результат данных команд, не должно изменяться перед их выполнением.

Последняя команда условного перехода производит сравнение содержимого аккумулятора с операндом (команда 12.59) или регистра с операндом (команда 12.60) и реализует переход, если они не равны. Эта операция может выполняться при значениях содержимого тестового регистра (аккумулятора или регистра текущего банка), равных или не равных нулю. Таким образом данные команды могут использоваться вместо команд «jz», «jnz», позволяя тестировать на ноль значение любого байта, хранящегося в памяти.

Go to Top