загрузка...
загрузка...
На головну

Система команд мікроконтролера

Мікроконтролер має 255 команд: пересилання даних, арифметичних операцій, логічних операцій, передачі управління, операцій з бітами. За форматом команди можуть бути одно-, дво- і трехбайтовимі.

Команда ADD A, «байт-джерело»[3].

Ця команда (додавання) складає вміст акумулятора А з вмістом байта-джерела, залишаючи результат в акумуляторі. Для команди складання дозволені такі способи адресації байта-джерела:

1) реєстровий (як операнд використовуються регістри R0-R7);

2) опосередковано-регістровий (@ - префікс непрямої адресації, як регістрів-покажчиків пам'яті можуть використовуватися R0 і R1);

3) прямий (вказується прямий адресу байта РПД або регістра спеціальних функцій);

4) безпосередній (# - префікс безпосередніх даних).


Команда LCALL «ad16».

Команда «довгий виклик» викликає підпрограму, що знаходиться за вказаною адресою. До лічильнику команд РС додається 3 для отримання адреси наступної команди і після цього отриманий 16-бітовий результат поміщається в стек (спочатку слід молодший байт, за ним - старший), а вміст покажчика стека SP збільшується на 2.

Потім старший і молодший байти лічильника команд завантажуються відповідно другим і третім байтом команди LCALL. Виконання програми продовжується командою, яка знаходиться за отриманим адресою. Підпрограма може починатися в будь-якому місці пам'яті програм обсягом до 64 Кбайт. Команда на прапори не впливає.

команда RET.

Команда «повернення з підпрограми» послідовно вивантажує старший і молодший байти лічильника команд з стека, зменшуючи покажчик стека на 2. Виконання основної програми триває за адресою команди, наступної за АCALL або LCALL. На прапори ця команда не впливає.

команда RETI.

Команда «повернення з переривання» вивантажує старший і молодший байти лічильника команд з стека, зменшуючи покажчик стека на 2. Встановлює логіку переривань, дозволяючи прийом інших переривань з рівнем пріоритету, рівним рівнем пріоритету щойно обробленого переривання. Слово стану програми PSW не відновлюється автоматично.

Виконання основної програми триває з команди, наступної за командою, на якій стався перехід до виявлення запиту на переривання. Якщо при виконанні команди RETI виявлено переривання з таким же або меншим рівнем пріоритету, то одна команда основної програми встигає виконатися до обробки такого переривання.

Мікроконтролерів сімейства МК51 «-- попередня | наступна --» Команди мікроконтролера сімейства МК51
загрузка...
© om.net.ua