69383

ХАРАКТЕРИСТИКА КОМАНД МІКРОКОНТРОЛЕРА

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Мнемоніка команди представлення коду операції у вигляді сполучення латинських літер що мають визначений зміст використовуються англійські слова або скорочення наприклад MOV PUSH POP JMP CLR NOP. Мнемокод включає в себе мнемоніку команди та опис операндів які беруть участь в операції.

Украинкский

2014-10-04

208 KB

0 чел.

РОЗДІЛ 2 ПРОГРАМУВАННЯ МІКРОПРОЦЕСОРНИХ СИСТЕМ НА БАЗІ МІКРОКОНТРОЛЕРІВ РОДИНИ МК-51

Тема 2.2 Характеристика команд мікроконтролера

леКЦІЯ 3 ХАРАКТЕРИСТИКА КОМАНД МІКРОКОНТРОЛЕРА

САМОСТІЙНА РОБОТА СТУДЕНТІВ


  1.  МНЕМОНІКА КОМАНДИ ТА МНЕМОКОД

Мнемоніка команди  представлення коду операції у вигляді сполучення латинських літер, що мають визначений зміст (використовуються англійські слова або скорочення, наприклад, MOV, PUSH, POP, JMP, CLR, NOP). Мнемоніки введені для полегшення написання програм, і складають основу мови асемблера.

Мнемокод включає в себе мнемоніку команди та опис операндів, які беруть участь в операції.

  1.  КОД ОПЕРАЦІЇ КОМАНДИ

Код операції команди (КОП)  комбінація бітів (не більше восьми для 8-розрядних МК-в ), що знаходяться на початку машинного коду команди і визначають тип операції, що підлягає виконанню у момент часу. КОП дістається з пам'яті і розміщується в програмно недоступний регістр команд. Потім він декодується і визначається тип команди, яка повинна бути виконана. Для 16-х мікропроцесорів КОП частково може знаходитися у другому байті машинного коду команди. Крім КОП в машинний код команди можуть входити адреси та операнди.

  1.  МАШИННИЙ КОД КОМАНДИ

Машинний код команди представляє собою двійковий код команди, який складається з одного або декількох байтів в залежності від типу команди конкретного МК-ра.

  1.  ОПЕРАНДИ

Операндами у мікропроцесорній техніці називають дані, які приймають участь у виконанні тієї чи іншої команди (операції). В залежності від способу адресації операндів, дані можуть знаходитися у регістрах, пам’яті, у машинному коді команди і т.ін.

  1.  КОМЕНТАР

Коментар використовується для полегшення читання програми. Компілятор (асемблер) пропускає коментарі, що показані в програмі через “;” після або до мнемоніки команди, не генеруючи при цьому ніякого машинного коду.

  1.  ФОРМАТИ КОМАНД

8-розрядний МК типу MCS-51, наприклад, АТ89С51 має команди тринадцяти форматів (типів) (рисунок 1). Перший байт команди кожного типу (формату) завжди містить КОП. Другий і третій байти включають в себе або адреси операндів, або безпосередні операнди.

Команди першого типу мають довжину 1 байт. Крім КОП в склад команди може входити адреса одного з восьми РЗП поточного банку регістрів або адреса регістра, що використовувався для непрямої адресації пам'яті.

Команди другого типу містять два байти, з яких:

  •  перший байт виконує функції, що описані вище;
  •  другий байт є 8-розрядним безпосереднім операндом (БО), який входить в саму команду.

D7    .   .   .    D0

1

КОП

D7   .   .   .   D0

2

КОП

#D8

3

КОП

ad

4

КОП

bit

5

КОП

rel

6

а10a9a8

КОП

a7 . . . . . . a0

D7  .  .  .  D0

7

КОП

ad

#D8

8

КОП

ad

rel

9

КОП

add

ads

10

КОП

#D8

rel

11

КОП

bit

rel

12

КОП

ad16H

ad16L

13

КОП

D16H

D16L

Рисунок 1 – Формати команд

Другий байт команд третього типу являє собою пряму адресу комірки резидентної пам’яті даних (РПД) або одного з 21 регістрів спеціальних функцій (таблиця 1).

Таблиця 1 – Регістри спеціальних функцій

Позначення

Найменування

Адреса

*   ACC

Акумулятор

0E0H

*   B

Регістр В

0F0H

*   PSW

Регістр стану програми

0D0H

SP

Регістр-покажчик стеку

81H

DPTR

Регістр-покажчик даних (2 байти):

DPL

Молодший байт

82H

DPH

Старший байт

83Н

*   P0

Порт 0

80H

*   P1

Порт 1

90H

*   P2

Порт 2

0A0H

*   P3

Порт 3

0B0H

*   IP

Регістр пріоритетів переривань

0B8H

*   IE

Регістр дозволу (масок) переривань

0A8H

TMOD

Регістр режимів таймерів/лічильників

89H

*   TCON

Регістр керування-статусу таймерів/лічильників

88H

TH0

Таймер/лічильник 0 (старший байт)

8CH

TL0

Таймер/лічильник 0 (молодший байт)

8AH

TH1

Таймер/лічильник 1 (старший байт)

8DH

TL1

Таймер/лічильник 1 (молодший байт)

8BH

*   SCON

Регістр керування послідовним портом

98H

SBUF

Буфер послідовного порту

99H

PCON

Регістр керування енергоспоживанням

87H

* - регістри, які допускають побітову адресацію.

Другий байт команд четвертого типу містить адресу одного з 128 біт РПД, які адресуються прямо, (рисунок 2) або адресу біт регістрів спеціальних функцій, які допускають пряму бітову адресацію (рисунок 3).

Рисунок 2 - Організація побітової адресації ОЗП

Другий байт команд п'ятого типу є 8-розрядним числом зі знаком в додатковому коді, яке в командах передачі керування додається до поточного значення програмного лічильника (до адреси наступної команди), чим забезпечується перехід в програмі на +127 комірок вперед або на -128 назад відносно наступної команди. Значення цього числа обчислюється компілятором за формулою:

rel = АДРЕСА МІТКИ – АДРЕСА НАСТУПНОЇ КОМАНДИ (1)

Рисунок 3 - Адреси біт регістрів спеціальних функцій

Двобайтова команда шостого типу крім коду операції (КОП) містить одинадцятирозрядну пряму адресу (a10, a9, …, a1, a0), що забезпечує перехід в програмі всередині сторінки, об'ємом 2 Кбайт або виклик підпрограми в тому ж діапазоні адрес.

Другі і треті байти команд 7…11 типів є сполученням описаних вище команд:

  •  прямої адреси байта (ad, ads, add);
  •  прямої адреси біта (bit);
  •  8-розрядного числа зі знаком (rel);
  •  безпосереднього операнда (D8).

Другі і треті байти команд 12-го і 13-го типів представляють відповідно:

  •  пряму 16-бітову адресу переходу або підпрограми;
  •  16-бітовий безпосередній операнд.
  1.  ФОРМАТИ ДАНИХ

Під час роботи з мікроконтролером необхідно знати не тільки формати команд, які управляють роботою МК, але й формати даних (операндів), що приймають участь у виконанні тієї або іншої команди (операції) (рисунок 4).

  1.  ДОВЖИНА КОМАНД У БАЙТАХ ТА ЇХ РОЗМІЩЕННЯ У ПАМ'ЯТІ ПРОГРАМ

У 8-розрядному МК-рі, наприклад, AT89C51, багатобайтові команди зберігаються в сусідніх комірках пам’яті та адресуються за першим байтом, причому двобайтові слова даних і адреси розташовуються в порядку зростання адреси ЗП – спочатку старший, а потім молодший байти. Як видно з рисунка 2, для цього МК-ра команди можуть мати довжину 1,2 або 3 байти.

Байт без знака:

7р 0р

.

.

.

.

.

.

0..255

СЗР, МЗР, ДДЧ,

старший молодший діапазон

значущий значущий десяткових

розряд розряд чисел

Байт зі знаком:

7р 0р

.

.

.

.

.

.

-128...+127

СЗР МЗР ДДЧ

знак СЗР:

1 – мінус

0 – плюс

Логічний байт:

7р 0р

X7

X6

X5

X4

X3

X2

X1

X0

Вісім незалежних логічних змінних

Упаковане двійково-десяткове число:

7р 4р 3р 0р

.

.

.

.

.

.

0...+99

СЗР МЗР ДДЧ

старша тетрада молодша тетрада

(0…9D) (0…9D)

Двобайтове слово:

15р 0р

.

.

.

.

.

.

.

.

.

.

.

.

.

.

0...+65535

СЗР МЗР ДДЧ

Рисунок 4 - Формати (типи) даних

Програма, яка керує роботою МК-ра, послідовно, команда за командою, розміщується в сусідніх комірках пам'яті в порядку зростання їх адрес. Адреса команди, яка повинна використовуватись, знаходиться у програмному лічильнику РС. Пристрій керування мікроконтролера на підставі прочитаного коду операції, що міститься завжди в першому байті команди, визначає, скільки ще байтів міститься в команді, та керує їх читанням з пам'яті шляхом збільшення на одиницю адреси, яка видається при кожному звертанні до ЗП. Після читання з пам'яті чергової команди МК формує адресу КОП наступної команди.

  1.  ВПЛИВ КОМАНД НА ПРАПОРЦІ

Як відзначалося раніше, одним з основних регістрів МК-ра є регістр прапорців (ознак).

Прапорці регістра ознак встановлюються під час виконання ряду команд МК-ра. Під час описання системи команд, яка, як правило, оформлюється у вигляді таблиці, в одній з колонок показується вплив окремих команд на ті або інші прапорці [2, 12, 14, 15].

Якщо команда не змінює прапорець, то ставлять риску, якщо змінює, то ставлять плюс, а якщо встановлює у який-небудь стан, то пишуть нуль (0) або одиницю (1). Як правило, команди пересилок не змінюють прапорці, окрім команд, які пересилають дані у регістр прапорців. Частіше прапорці змінюють арифметичні, логічні команди і команди порівняння.

Окремі прапорці (ознаки) аналізуються під час виконання команд умовних переходів, виклику і повернення з підпрограм, що дозволяє передавати керування в програмі в залежності від поточного значення прапорців.

В таблиці 2 показано вплив на прапорці команд МК типу АТ89С51.

Таблиця 2 – Команди, що впливають на встановлення прапорців МК

Мнемоніка

Прапорці

C

OV

AC

ADD

x

x

x

ADDC

x

x

x

SUBB

x

x

x

MUL

0

x

DIV

0

x

DAА

x

RRC

x

RLC

x

SETB C

1

CLR C

0

CPL C

x

ANL C, bit

x

ANL C, /bit

x

ORL C, bit

x

ORL C, /bit

x

MOV C, bit

x

CJNE

x

Примітки:

  1.  x – прапорець, дорівнює 0 або 1.
  2.  Операції над вмістом регістра прапорців PSW або його окремих розрядів також впливають на встановлення прапорців.
  3.  Прапорець паритету (парності) P встановлюється/скидається апаратно та відображає число одиниць в акумуляторі.
  4.  ЧАС ВИКОНАННЯ КОМАНД

В МК-рі типу MCS-51 окремі команди виконуються за 1, 2 або 4 машинні цикли.

Всі машинні цикли однакові і складаються з 6 станів: (S1, S2, .., S6) по дві фази в кожному стані (P1, P2). Тривалість однієї фази дорівнює періоду тактової частоти fBQ. Тобто один машинний цикл складається з 12 фаз (12 періодів fBQ). Знаючи значення fBQ, можна визначити TBQ = 1/fBQ, а отже, і час машинного циклу tМЦ = TBQ*12.

Більшість команд МК типу MCS-51 виконуються за 1 або 2 машинні цикли, а множення і ділення – за 4 машинні цикли. Якщо, наприклад, fBQ = 12 МГц, то TBQ = 1/12*10-6 с, TМЦ = (1/12)*12*10-6 = 1 мкс, а окремі команди виконуються за 1, 2 або 4 мкс.

  1.  СПОСОБИ АДРЕСАЦІЇ ОПЕРАНДІВ МІКРОКОНТРОЛЕРА

Тип звертання (адресації) до операндів (даних, що беруть участь в операції) називають способом адресації. До способів адресації операндів також відносять те, як в командах передачі керування дається вказівка на адресу переходу.

У МК типу MCS-51 існують наступні способи адресації операндів  даних, що беруть участь в операції:

  •  неявна;
  •  регістрова (пряма регістрова);
  •  пряма (байтова і бітова);
  •  безпосередня;
  •  непряма;
  •  відносна;
  •  базово-індексна;
  •  стекова.

При неявній адресації інформацію про адресу операнда, який бере участь в операції, пристрій керування МК-ра одержує з коду операції команди. Таким чином часто адресуються акумулятор і прапорець перенесення, наприклад:

INC  A,

CLR  C.

При регістровій адресації команда містить трьохрозрядну пряму адресу одного з восьми робочих регістрів поточного банку регістрів загального призначення (РЗП) резидентної пам’яті даних (РПД). Для вибору робочого (поточного) банку використовуються розряди PSW3, PSW4 (RS0, RS1) регістра прапорців. Приклади команд з регістровою адресацією:

MOV  A, R5;

XCH  A, R3.

Пряма байтова адресація застосовується для звертання до комірок РПД і до регістрів спеціальних функцій. В цьому випадку команда включає в себе пряму 8-розрядну адресу операнда, яка при описанні команд мікроконтролера позначається ad, наприклад:

ADD  A, ad;

DEC  ad.

Пряма бітова адресація використовується для звертання до 128 бітів РПД, які адресуються окремо, і до бітів регістрів спеціальних функцій, які адресуються окремо, (див. програмістську модель МК-ра). При цьому команда містить пряму 8-розрядну адресу біта, який бере участь в операції. Ця адреса при описанні команд позначається bit, наприклад:

SET  bit;

MOV  C, bit.

При безпосередній адресації операнд входить до складу самої команди і дістається з пам'яті при виконанні команди одразу ж після її коду операції. Безпосередній операнд позначається #D8, #D16, наприклад:

MOV  A, #D8;

MOV  DPTR, #D16.

При непрямій адресації в команді міститься посилання на регістр, в якому міститься адреса операнда. Ця адресація може використовуватися для звернення до комірок РПД або зовнішньої пам’яті даних ЗПД. В якості регістрів-вказівників РПД використовуються регістри R0, R1 робочого (поточного) банку РЗП. Це, наприклад, наступні команди:

MOV  A, @Ri;

MOV  ad, @Ri.

В якості регістрів-вказівників ЗПД застосовуються ті ж R0 і R1, що дозволяє вибрати одну з 256 комірок зовнішньої пам'яті даних, або 16розрядний регістр-вказівник даних (DPTR), який забезпечує адресацію однієї з 65536 = 64 К восьмирозрядних комірок ЗПД. Наприклад, наступні команди:

MOVX  A, @Ri;

MOVX  @DPTR, A.

Відносна адресація застосовується в командах переходів для обчислення адреси команди, на яку передається керуванння. При цьому в команді задається 8-розрядний зсув відносно адреси самої команди, який при описанні команд позначається як rel. Зсув сприймається як число зі знаком, що представлене у додатковому коді. Це дозволяє здійснювати переходи на +127 байт вперед і на –128 байт назад відносно адреси наступної команди. Наприклад, наступні команди:

JNZ  rel;

DJNZ  ad, rel,

де rel – 8-бітний зсув. Зсув обчислюється компілятором шляхом віднімання від адреси мітки команди, на яку потрібно перейти, адреси наступної команди.

При базово-індексній адресації адреса операнда обчислюється як сума 16-розрядної базової адреси, що міститься в регістрах DPTR або PC, і 8-бітного індексу, що знаходиться в пам’яті програм в акумуляторі. Це дозволяє звертатися до елементів таблиць, масивів і т.ін. Наприклад, наступні команди:

MOVC  A, @A+DPTR;

MOVC  A,@A+PC.

Стекова адресація виділена в самостійний вид адресації умовно, щоб підкреслити специфіку роботи зі спеціальною областю пам'яті, яка називається стеком.

При записі до стеку (команда PUSH) стек розширюється, а при читанні зі стеку (команда POP) стек стискається. В будь-якому випадку операція виконується відносно крайньої (останньої) заповненої комірки, яка називається “вершиною стеку”. Формально стек  це пам'ять з організацією типу “останній увійшов  перший вийшов”.

У мікроконтролері MCS-51 при виконанні команди PUSH початкове значення SP збільшується на одиницю та за отриманою адресою байт записується у стек. При виконанні команди POP зі стеку зчитується байт за початковою адресою SP, після чого значення SP зменшується на 1.


САМОСТІЙНА РОБОТА СТУДЕНТІВ

  1.  ПРИКЛАДИ КОМАНД, ЯКІ ВИКОРИСТОВУЮТЬ РІЗНІ СПОСОБИ АДРЕСАЦІЇ ОПЕРАНДІВ

PAGE   \* MERGEFORMAT 1


 

А также другие работы, которые могут Вас заинтересовать

60798. Створення головного меню і контекстного меню доданку 54 KB
  Вставка в форму головного і контекстного меню об‘єкти типу MinMenu і PopupMenu. Щоб ввести назви команд головного меню форми виберітьоб‘єкт MinMenu1 і двічі клацніть на його властивості Items.
60802. Моделювання виховної роботи з учнями, що мають різний соціометричний статус 61.5 KB
  Проведемо наше методичне об’єднання в нетрадиційній формі деякі засоби роботи вправи ви зможете використати в роботі з класом. Отже сьогодні чого ми очікуємо від процесу виховання Якими ми бачимо труднощі або результати...
60804. Особливості формування ключових компетентностей учнів через міжтематичні зв’язки системи теоретичних понять інформатики та реалізацію гуманітарних аспектів 373 KB
  Особливість предмету інформатики та визначення його ролі і міста серед предметів на формування загальної освіти особистості зміст його предметних та загальноосвітніх компетентностей вже створює проблеми в викладанні змісту...