Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Типи операндів та способи адресації




МК 51 використовує операнди чотирьох типів: біти, 4-бітові цифри, байти і 16-байтові слова. З карти адрес РПД (рисунок 8.4) видно, МК має 128 програмно-керованих індикаторів користувача, а також є можливість адресації окремих бітів блока регістрів спеціальних функцій. Для адресації бітів використовується пряма 8-бітова адреса (bit), як це показано для команд 4 і 11 (рисунок 8.9). Опосередкована адресація бітів неможлива. Чотирибітові операнди виконуються тільки в операціях обміну SWAP i XCHD (формат типу 1).Восьмибітовим операндом може бути комірка пам’яті програм або даних (резидентної або зовнішньої), константа (безпосередній операнд), регістри спеціальних функцій, а також порти вводу-виводу. Порти і регістри спеціальних функцій адресуються тільки прямим способом. Байти пам’яті можуть адресуватись також і опосередковано через адресні регістри R0 і R1, відповідного банку, а також регістри DPTR і лічильник команд PC.

Таблиця 8.13- Перелік базових типів команд МК 51 в алфавітному порядку.

Мнемокод Призначення
ACALL Абсолютний виклик підпрограми в межах сторінки в 2К
ADD Додавання
ADDC Додавання з переносом
AJMP Абсолютний перехід в межах сторінки в 2К
ANL Логічне ”І“
CJNE Порівняння байта в РПД з константою і перехід, якщо рівно
CLR Обнуління акумулятора, біта або переносу
CPR Інверсія акумулятора, біта або переносу
DA Десяткова корекція акумулятора
DEC Декремент
DIV Ділення
DJNZ Декремент байта і перехід, якщо нуль
INC Інкремент
JB Перехід, якщо біт рівний одиниці
JBC Перхід, якщо біт установлено з наступним його обнулінням
JC Перехід, якщо перенос рівний одиниці
JMP Опосередкований відносний перехід
JNB Перехід, якщо біт рівний нулю
JNZ Перехід, якщо акумулятор не рівний нулю
JZ Перехід, якщо акумулятор рівний нулю
JCALL Довгий виклик підпрограми
LJMP Довгий перехід в повному об’ємі пам’яті програм
MOV Пересилання та завантаження даних в межах РПД
MOVC Пересилання з пам’яті програм
MOVX Персилання з ЗПД
MUL Множення
NOP Неробочій хід
ORL Логічне ”АБО“
POP Добування зі стеку
PUSH Завантаження в стек
RET Повернення з підпрограми
RETI Повернення з підпрограми обробки переривань
RL Зсув вліво циклічно
RLC Зсув вліво через перенос
RR Зсув вправо циклічно
RRC Зсув вправо через перенос
SETB Установка біта
SJMP Короткий відносний перехід в межах сторінки в 256 байтів
SUBB Віднімання з запозиченням
SWAP Обмін тетрадами в байт
XCH Взаємообмін акумулятора з регістрами та комірками пам’яті
XCHD Обмін молодшими тетрадами акумулятора і комірки пам’яті
XRL Виключаюче ”АБО“

Рисунок 8.9- Формати команд МК 51:

КОП - код операції;

ad - пряма 8-розрядна адреса байта в РПД з такими уточненнями:

add - для джерела;

ads - для приймача;

ad11(a10... a0) - біти прямої 11-розрядної адреси передачі керування в пам’яті програм;

ad16 - пряма 16-розрядна адреса передачі керування в пам’яті програм, де:

ad 16 h - старший, а

ad 16 l - молодший біт адреси;

bit - пряма 8-розрядна адреса біта;

#d - 8-розрядний операнд;

#d 16 16-розрядний операнд, де:

#d 16 h - старший, а

#d 16 l - молодший біт адреси;

rel - 8-розрядна відносна адреса передачі керування в РПД (-127... +127).

Двобайтові операнди - це константи і прямі адреси, для представлення яких використовується другий і третій байт команди (типи 12 і 13).

В системі команд МК 51 передбачені 11 способів адресації операндів (рисунок 8.9).

основні: регістрова (тип 1); безпосередня (типи 2 і 3);

пряма (типи 3...6, 12); неявна (тип 1);

опосередкована (тип 1).

комбіновані: безпосередня з прямою (типи 7 і 10); пряма з

прямою (типи 8, 9, 11); пряма з опосередкованою

(тип 2 і 3); тощо.

Така широка номенклатура способів адресації операндів загальна кількість команд збільшується до 255, що практично вичерпує максимально можливу номенклатуру команд при однобайтовому коді операції.

При використанні асемблера МК51 (ASM51) з метою одержання об’єктних кодів програм допускається при програмуванні вживати символьні імена регістрів символьних функцій, портів і їх окремих бітів. Для адресації окремих бітів РСФ і портів (де це можливо) можна використовувати символьні імена бітів в такому форматі:

<ім’я РСФ або порта>.<номер біта>

Наприклад, символьне ім’я порта Р1, можна записати, як Р1.2, а п’ятого біта акумулятора - АСС.5. Символьні імена регістрів і їх бітів є резервованими словами для ASM 51, тому їх не треба визначати директивами асемблера.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...