Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Топ:
Оснащения врачебно-сестринской бригады.
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Дисциплины:
2017-12-22 | 220 |
5.00
из
|
Заказать работу |
|
|
Описание команды безусловного и условного переключения, команд вызова подпрограмм и возврата из подпрограмм приведены в табл. А9.
Таблица. А9.6
Команды передачи управления
Название команды | Мнемокод | КОП | T | Б | Ц | Операция |
Длинный переход в полном объеме ПП | LJMP ad16 | (PC) ← ad16 | ||||
Абсолютный переход внутри страницы в 2 Кб | AJMP ad11 | aioa9a800001 | (PC) ← (PC) + 2, (РС0– PC10) <– ad11 | |||
Короткий относительный переход внутри страницы в 256 байт | SJMP rel | (PC) ←(PC) + 2, (PC) ← (PC) +rel | ||||
Косвенный относительный переход | JMP ©A+DPTR | (PC) <– (A) + (DPTR) | ||||
Переход, если аккумулятор равен нулю | JZ rel | (PC)← (PC)+2, если (А)=0, то (PC)←(PC)+rel | ||||
Переход, если аккумулятор не равен нулю | JNZ rel | (PC)← (PC)+2, если (А)*0, то (PC)←(PC)+rel | ||||
Переход, если перенос равен единице | JC rel | (PC)←(PC)+2, если (Сr)=1, то (PC)←(PC)+rel | ||||
Переход, если перенос равен нулю | JNC rel | (PC)←(PC)+2, если (Сr)=0, то (PC)←(PC)+rel | ||||
Переход, если бит равен единице | JB bit, rel | (PC)←(PC)+3, если (bit)=l, то (PC)←(PC)+rel | ||||
Переход, если бит равен нулю | JNB bit, rel | (PC)←(PC)+3, если (bit)=0, то (PC)←(PC)+rel | ||||
Переход, если бит установлен, с последующим сбросом бита | JBC bit, rel | (PC) ← (PC) + 3, если (bit)=1, то (bit)← 0 и (РС)←(PC) + rel | ||||
Декремент регистра и переход, если не нуль | DJNZ Rn, rel | 11011rrr | (PC) ← (PC) + 2, (Rn) ←(Rn) -1, если (Rn) ≠ 0, то (PC) ←(PC) + rel | |||
Декремент прямоадресуемого байта и переход, если не нуль | DJNZ ad, rel | (PC) ←(PC) + 2, (ad)← (ad)-1, если (ad) ≠ 0, то (PC←(PC) + rel | ||||
Сравнение аккумулятора с прямо адресуемым байтом и переход, если не равно | CJNE A, ad, rel | (PC) ←(PC) + З. если (A) ≠ (ad), то (PC) ← (PC) + ге1, если (A) < (ad), то (Сr) ←1, иначе (Сr) ←0 |
|
Продолжение таблицы А9.6
Сравнение аккумулятора с константой и переход, если не равно | CJNE A, #d, rel | (PC) ← (PC) + З.если (А) ≠ #d, то (PC) ← (PC) + ге1,если (А) < #d, то (Cr)← 1, иначе (Сr) ←0 | ||||||
Сравнение регистра с константой и переход, если не равно | CJNE Rn, #d, rel | 10111rrr | (PC) ←(PC) + З. если (Rn) ≠ #d, то (PC) ←(PC) + rel, если (Rn) < #d, то (Cr)← 1, иначе (Сr) ←0 | |||||
Сравнение байта в РПД с константой и переход, если не равно | CJNE @Ri,#d, rel | 1011011i | (PC) <– (PC) + З. если ((Ri)) ≠ #d, то (PC) ←(PC)+ ге1, если ((Ri)) < #d, то (Cr)<– 1, иначе (Сr) <-0 | |||||
Длинный вызов подпрограммы | LCALL adl6 | (PC) ←(PC) + 3, (SP) ←(SP) +1, ((SP)) ←(PC0...7), (SP) ←(SP)+1, ((SP)) ←(PC8...15), (PC) ←ad16 | ||||||
Абсолютный вызов подпрограммы в пределах страницы в 2 Кб | ACALL ad11 | a10a9a8i0001 | (PC) ←(PC) + 2, (SP) ←(SP) + 1, ((SP)) ←(PC0...7), (SP) ←(SP)+1, ((SP)) ←(PC8..15), (PC0-10) ←ad11 | |||||
Возврат из подпрограммы | RET | (PC8...15) ←((SP)), (SP)←(SP)–1, (PC0...7) ← ((SP)), (SP) ←(SP) – 1 | ||||||
Возврат из подпрограммы обработки прерывания | RETI | (PC8...15) ←((SP)), (SP) ←(SP)–1, (PC0...7) ←((SP)), (SP) ← (SP) – 1 | ||||||
Пустая операция | NOP | (PC) ←(PC) + 1 | ||||||
Команда безусловного перехода LJMP (L (long – длинный)) осуществляет переход по абсолютному 16-битному адресу, указанному в теле команды, т.е. команда обеспечивает переход в любую точку памяти программ в пределах сегмента 0-65536.
Действие команды AJMP (А (absolute – абсолютный)) аналогично команде LJMP, но действие команды определяется адресом, который образуется из номера одной из восьми страниц дополненной байтом смещения в странице (всего 11 разрядов). Кодом страницы являются биты D7D6D5 кода операции команд AJMP или ACALL (по восемь команд).
Примечание: Примером может служить переход на адрес 34h в третьей странице, для которой D7D6D5 кода операции есть 0102. Состояния битов D4D3D2D1D0 в коде команды AJMP фиксированы для всех восьми страниц и, соответственно, есть код 000012. Следовательно, команда AJMP для третьей страницы имеет код 41h. Код команды AJMP для передачи управления на адрес 34h в третьей странице будет представлен двумя байтами (41 34). Двоичный код адреса перехода представляется записью вида (010 0011 0100)2 , что соответствует адресу 234 в hex-формате.
|
В команде SJMP (S (short – короткий)) указан не абсолютный, а относительный адрес перехода в пределах. Величина смещения rel рассматривается, как число со знаком, а, следовательно, переход возможен в пределах – 128...+127 байт относительно адреса команды, следующей за командой SJMP (относительно текущего состояния счётчика команд РС после считывания команды SJMP rel)..
Команда косвенного перехода JMP @A+DPTR позволяет вычислять адрес перехода в процессе выполнения самой программы.
Командами условного перехода можно проверять следующие условия:
JZ – аккумулятор содержит нулевое значение (Zero в регистре PSW не фиксируется, но фиксируется на выходе АЛУ);
JNZ – аккумулятор содержит не нулевое значение;
JC – бит переноса Сr установлен;
JNC – бит переноса Сr не установлен;
JB – прямо адресуемый бит равен 1
JNB – прямо адресуемый бит равен 0;
JBC – прямо адресуемый бит равен 1 и сбрасывается в нулевое значение при выполнении команды.
По командам условного перехода с коротким относительным адресом ге1, переход выполняется в пределах –128... +127 байт относительно следующей команды.
Команда DJNZ предназначена для организации программных циклов. Регистр Rn или байт по адресу ad, указанные в теле команды, содержат счетчик повторений цикла, а смещение rel – относительный адрес перехода к началу цикла. При выполнении команды содержимое счетчика уменьшается на 1 и проверяется на 0. Если значение содержимого счетчика не равно 0, то осуществляется переход на начало цикла, в противном случае выполняется следующая команда.
Команда CJNЕ предназначена для реализации процедур ожидания внешних событий. В теле команды указаны «координаты» двух байт и относительный адрес перехода rel. В качестве двух байт могут быть использованы, например, значения содержимого аккумулятора и прямо адресуемого байта или косвенно адресуемого байта и константы. При выполнении команды значения указанных двух байт сравниваются и в случае, если они не одинаковы, осуществляется переход. Например, команда
|
WAIT: CJNE A, P0, WAIT
будет выполняться до тех пор, пока значения на линиях порта Р0 не совпадут со значениями содержимого аккумулятора.
Действие команд вызова процедур полностью аналогично действию команд безусловного перехода. Отличие состоит в том, что они сохраняют в стеке адрес возврата.
Команда возврата из подпрограммы RET восстанавливает из стека значение содержимого счетчика команд, а команда возврата из процедуры обработки прерывания RETI, кроме того, разрешает прерывание обслуженного уровня. Команды RET и RETI не различают, какой командой – LCALL или ACALL – была вызвана подпрограмма, так как и в том, и в другом случае в стеке сохраняется полный 16-разрядный адрес возврата.
Большинство Ассемблеров допускают обобщенную мнемонику JMP – для команд безусловного перехода и CALL – для команд вызова подпрограмм. Конкретный тип команды определяется Ассемблером, исходя из «длины» перехода или вызова.
|
|
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!