|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Система команд мови АСМ51
Система команд мови АСМ51 містить 111 команд, що забезпечують реалізацію широкої номенклатури арифметичних і логічних операцій, а також операцій пересилання даних і передачі керування. У табл.2.9 приведені позначення, використовувані в описі команд. Таблиця 2.9
Час виконання розглянутих команд вказується в машинних циклах. Нагадаємо, що тривалість одного машинного циклу визначається вираженням , де f є частота синхронізації мікроконтролера.
Команда "абсолютний виклик підпрограми" викликає безумовно підпрограму, розміщену за адресою addr11. При цьому вміст лічильника команд PC збільшується на 2 для одержання адреси наступної команди, після чого отримане 16-розрядне значення PC поміщається в стек, і вміст покажчика стека SP також збільшується на 2. Адреса переходу утвориться за допомогою конкатенації (зчеплення) 5-ти старших біт збільшеного вмісту лічильника команд PC, вмісту 7-5 бітів старшого байта команди і вмісту другого байта команди. Адреса переходу і зазначена команда повинні знаходитися усередині однієї сторінки пам'яті програм (ПП) обсягом 2 Кбайт, обумовленої вмістом п'яти старших біт PC. Час виконання команди 2 цикли.
Команда "додавання" додає вміст акумулятора A із вмістом заданого регістра Rn обраного банку, розміщаючи результат у A. Вміст використовуваного регістра не змінюється. З появою переносів з розрядів 7 і 3 результати встановлюються в "1" прапор переносу C і прапор додаткового переносу AC відповідно, у противному випадку ці прапори скидаються в "0". Прапор переповнення OV встановлюється, якщо є перенос з біта 6 і немає переносу з біта 7, чи є перенос з біта 7 і немає - з біта 6, у противному випадку прапор OV скидається. Час виконання команди 1 цикл.
Команда "додавання" додає вміст акумулятора A із вмістом комірки резидентної пам'яті даних (РПД), адресовану вмістом заданого регістра Ri обраного банку. Результат розміщається в A. Вміст використовуваного осередку не змінюється. Логіка установки (скидання) прапорів і час виконання такі ж, як у розглянутої вище команди з аналогічною мнемонікою.
Команда "додавання" додає вміст акумулятора A із вмістом комірки резидентної пам'яті даних (або регістра спеціальних функцій), 8-розрядна адреса якої (якого) визначається символічним ім'ям direct. Результат міститься в A. Вміст використовуваної комірки використовуваного регістра не змінюється. Логіка установки (скидання) прапорів і час виконання такі ж, як у розглянутої вище команди з аналогічною мнемонікою.
Команда "додавання" додає вміст акумулятора A з байтом даних data8, безпосередньо зазначеним у команді. Результат розміщається в A. Логіка установки (скидання) прапорів і час виконання такі ж, як у розглянутої вище команди з аналогічною мнемонікою.
Команда "додавання з переносом" одночасно додає вміст акумулятора A, вміст прапора переносу С і вміст заданого регістра Rn обраного банку, поміщаючи результат у A. Вміст використовуваного регістра не змінюється. З появою переносів з розрядів 7 і 3 результати встановлюються в "1" прапор переносу C і прапор додаткового переносу AC відповідно, у противному випадку ці прапори скидаються в "0". Прапор переповнення OV установлюється, якщо є перенос з біта 6 і немає переносу з біта 7, або є перенос з біта 7 і немає - з біта 6, у противному випадку прапор OV скидається. Час виконання команди 1 цикл.
Команда "додавання з переносом" одночасно додає вміст акумулятора A, вміст прапора переносу C і вміст осередку резидентної пам'яті даних (РПД), адресованої вмістом заданого регістра Ri обраного банку. Результат міститься в A. Вміст використовуваної комірки не змінюється. Логіка установки (скидання) прапорів і час виконання такі ж, як у розглянутої вище команди з аналогічною мнемонікою.
Команда "додавання з переносом" одночасно додає вміст акумулятора A, вміст прапора переносу C і вміст комірки резидентної пам'яті даних (або регістра спеціальних функцій), 8-розрядна адреса якої (якого) визначається символічним ім'ям direct. Результат міститься в A. Вміст використовуваної комірки використовуваного регістра не змінюється. Логіка установки (скидання) прапорів і час виконання такі ж, як у розглянутої вище команди з аналогічною мнемонікою.
Команда "додавання з переносом" одночасно додає вміст акумулятора A, вміст прапора переносу C і байт даних data8, безпосередньо зазначений у команді. Результат розміщається в A. Логіка установки (скидання) прапорів і час виконання такі ж, як у розглянутої вище команди з аналогічною мнемонікою.
Команда "абсолютний перехід" передає керування за адресою із символічним ім'ям addr11, що утвориться за допомогою конкатенації (зчеплення) 5-ти старших біт умісту лічильника команд PC (після збільшення його на 2), умісту 7-5 бітів старшого байта команди і вмісту другого байта команди. Адреса переходу і зазначена команда повинні знаходитися усередині однієї сторінки пам'яті програм (ПП) обсягом 2 Кбайт, обумовленої вмістом п'яти старших біт PC. Час виконання команди 2 цикли.
Команда "логічне І" виконує порозрядну кон’юнкцію вмісту акумулятора A із вмістом заданого регістра Rn обраного банку, поміщаючи результат у A. Вміст використовуваного регістра не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "логічне И" виконує порозрядну кон’юнкцію вмісту акумулятора A із вмістом комірки резидентної пам'яті даних (РПД), адресованої вмістом заданого регістра Ri обраного банку. Результат розміщається в A. Вміст використовуваної комірки не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "логічне І” виконує порозрядну кон’юнкцію вмісту акумулятора A із вмістом комірки резидентної пам'яті даних (або регістра спеціальних функцій), 8-розрядна адреса якої (якого) визначається символічним ім'ям direct. Результат міститься в A. Вміст використовуваної комірки пам’яті, чи використовуваного регістра не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "логічне І" виконує порозрядну кон’юнкцію вмісту акумулятора A з байтом даних data8, безпосередньо зазначеним у команді. Результат розміщається в A. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "логічне І" виконує порозрядну кон’юнкцію вмісту акумулятора A із вмістом комірки резидентної пам'яті даних (або регістра спеціальних функцій), 8-розрядна адреса якої (якого) визначається символічним ім'ям direct. Результат міститься відповідно у використовувану комірку або у використовуваний регістр. Вміст A не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "логічне І" виконує порозрядну кон’юнкцію байта даних data8, безпосередньо зазначеного в команді, із вмістом комірки резидентної пам'яті даних (або регістра спеціальних функцій), 8-розрядна адреса якої (якого) визначається символічним ім'ям direct. Результат міститься відповідно у використовуваній комірці або у використовуваному регістрі. Команда на стан прапорів не впливає і має час виконання 2 цикли.
Команда "логічне І" виконує кон’юнкцію вмісту прапора переносу C із умістом біта, 8-розрядна адреса якого визначається символічним ім'ям bit в області комірок резидентної пам'яті даних (РПД) або регістрів спеціальних функцій, що допускає побітове звертання. Результат міститься в С. Вміст використовуваного біта не змінюється. Команда на стан інших прапорів не впливає і має час виконання 2 цикли.
Команда "логічне І" виконує кон’юнкцію вмісту прапора переносу C з інвертованим значенням біта з області комірки резидентної пам'яті або даних регістра спеціальних функцій, що допускає побітове звертання, при цьому вміст використовуваного біта, 8-розрядний адрес якого визначається символічним ім'ям bit, не змінюється. Результат міститься в С. Команда на стан інших прапорів не впливає і має час виконання 2 цикли.
Команда "порівняння і перехід, якщо не дорівнює" порівнює вміст акумулятора A із вмістом комірки резидентної пам'яті даних (або регістра спеціальних функцій), 8-розрядна адреса якої (якого) визначається символічним ім'ям direct, і виконує перехід за адресою addr, якщо вміст A не дорівнює вмісту використовуваної комірки або використовуваного регістра, у іншому випадку виконується наступна команда. Адреса переходу addr визначається за допомогою додавання 8-бітового числа rel (зі знаком), розміщеного в останньому байті команди, із вмістом лічильника команд PC після збільшення його на три. Таким чином, зазначений перехід можливий у межах від -128 до +127 щодо початкової адреси наступної команди, при цьому негативне значення rel представляється двійковим числом у додатковому коді. Прапор переносу C скидається в "0", якщо вміст A більше (дорівнює) вмісту використовуваної комірки чи використовуваного регістра, у іншому випадку прапор встановлюється в "1". Команда не змінює (A) і (direct) і має час виконання 2 цикли.
Команда "порівняння і перехід, якщо не дорівнює" порівнює вміст акумулятора A з байтом даних data8, безпосередньо зазначеним у команді, і виконує перехід за адресою addr, якщо вміст A не дорівнює data8, у противному випадку виконується наступна команда. Процедура обчислення адреси переходу, вплив на (A) і час виконання такі ж, як у розглянутої вище команди з аналогічною мнемонікою. Прапор переносу C скидається в "0", якщо вміст A більше (дорівнює) data8, у противному випадку прапор встановлюється в "1".
Команда "порівняння і перехід, якщо не дорівнює" порівнює вміст заданого регістра Rn обраного банку з байтом даних data8, безпосередньо зазначеним у команді, і виконує перехід за адресою addr, якщо вміст Rn не дорівнює data8, у противному випадку виконується наступна команда. Процедура обчислення адреси переходу і час виконання такі ж, як у розглянутої вище команди з аналогічною мнемонікою. Прапор переносу C скидається в "0", якщо вміст Rn більше (рівне) data8, у противному випадку прапор встановлюється в "1". Команда не впливає на (Rn).
Команда "порівняння і перехід, якщо не дорівнює" порівнює вміст осередку резидентної пам'яті даних (РПД), адресованої вмістом заданого регістра Ri обраного банку, з байтом даних data8, безпосередньо зазначеним у команді, і виконує перехід за адресою addr, якщо вміст використовуваної комірки не дорівнює data8, у противному випадку виконується наступна команда. Процедура обчислення адреси переходу і час виконання такі ж, як у розглянутої вище команди з аналогічною мнемонікою. Прапор переносу C скидається в "0", якщо вміст використовуваної комірки більше (рівне) data8, у противному випадку прапор встановлюється в "1". Команда не впливає на ((Ri)).
Команда "скидання акумулятора" скидає (обнулює) вміст акумулятора A, на стан прапорів не впливає і має час виконання 1 цикл.
Команда "скидання прапора переносу" скидає (обнуляє) уміст прапора переносу C, на стан інших прапорів не впливає і має час виконання 1 цикл.
Команда "скидання біта" скидає (обнуляє) вміст біта, 8-розрядна адреса якого визначається символічним ім'ям bit в області комірок резидентної пам'яті даних (РПД) або регістрів спеціальних функцій, що допускає побітове звертання. Команда на стан не використовуваних прапорів не впливає і має час виконання 1 цикл.
Команда "інверсія акумулятора" інвертує вміст кожного біта акумулятора A, на стан прапорів не впливає і має час виконання 1 цикл.
Команда "інверсія прапора переносу" інвертує вміст прапора переносу C, на стан інших прапорів не впливає і має час виконання 1 цикл.
Команда "інверсія біта" інвертує вміст біта, 8-розрядна адреса якого визначається символічним ім'ям bit в області комірок резидентної пам'яті даних регістрів спеціальних функцій, що допускає побітове звертання. Команда на стан не використовуваних прапорів не впливає і має час виконання 1 цикл.
Команда "десяткова корекція акумулятора" упорядковує 8-бітову величину в акумуляторі A, отриману в результаті виконаної раніше команди додавання двох перемінних, представлених у двоїчно-десятковому форматі. Для виконання додавання може використовуватися кожна з типів команд ADD чи ADDC. Якщо значення бітів 3-0 акумулятора перевищує 9 (xxxx1010B-xxxx1111B) або, якщо вміст прапора AC встановлене в "1", то до вмісту A додається 06H, при цьому виходить відповідна двоїчно-десяткова цифра в молодшому напівбайті A. Зазначене додавання не змінює вміст прапора AC, але встановлює в "1" уміст прапора переносу C, якщо перенос з полючи молодших чотирьох біт поширюється через усі старші біти A, у противному випадку - не змінює (C). Далі, якщо вміст прапора C дорівнює "1", чи якщо значення битов 7-4 акумулятора перевищує 9 (1010xxxxB-1111xxxx), те це значення збільшується на 6, створюючи відповідну двоїчно-десяткову цифру в старшому напівбайті A. При цьому прапор C установлюється (не змінюється), якщо мається (відсутній) перенос з біта 7 акумулятора. Час виконання команди 1 цикл.
Команда "декремент" робить вирахування "1" із вмісту акумулятора A, на прапори не впливає і має час виконання 1 цикл.
Команда "декремент" робить вирахування "1" із умісту заданого регістра Rn обраного банку, на прапори не впливає і має час виконання 1 цикл.
Команда "декремент" робить вирахування "1" із вмісту комірки, 8-розрядний адрес якої визначається символічним ім'ям direct в області резидентної пам'яті даних у середовищі регістрів спеціальних функцій. Команда на прапори не впливає і має час виконання 1 цикл.
Команда "декремент" робить вирахування "1" із вмісту осередку резидентної пам'яті даних (РПД), адресованої вмістом заданого регістра Ri обраного банку, на прапори не впливає і має час виконання 1 цикл.
Команда "розподіл" поділяє 8-бітову перемінну з акумулятора A на 8-бітову перемінну з регістра B. Акумулятору привласнюється ціла частина частки (старші розряди), а регістру B - залишок. Вміст прапора переносу C скидається в "0". Вміст прапора переповнення OV також скидається, а у випадку розподілу на нуль - встановлюється в "1". Вміст прапора AC не змінюється. Команда має час виконання 4 цикли.
Команда "декремент і перехід, якщо не дорівнює нулю" виконує вирахування "1" із умісту заданого регістра Rn обраного банку і здійснює перехід за адресою addr, якщо вміст Rn не дорівнює нулю, у противному випадку виконується наступна команда. Адреса переходу addr визначається за допомогою додавання 8-бітового числа rel (зі знаком), розміщеного в останньому байті команди, із умістом лічильника команд PC після збільшення його на 2. Таким чином, зазначений перехід можливий у межах від -128 до +127 щодо початкової адреси наступної команди, при цьому негативне значення rel представляється двійковим числом у додатковому коді. Команда DJNZ Rn,addr на стан прапорів не впливає і має час виконання 2 цикли.
Команда "декремент і перехід, якщо не дорівнює нулю" виконує вирахування "1" із вмісту осередку, 8-розрядна адреса якої визначається символічним ім'ям direct в області резидентної пам'яті або даних у середовищі регістрів спеціальних функцій, і здійснює перехід за адресою addr, якщо вміст використовуваної комірки не дорівнює нулю, у противному випадку виконується наступна команда. Адреса переходу addr визначається за допомогою додавання 8-бітового числа rel (зі знаком), розміщеного в останньому байті команди, із умістом лічильника команд PC після збільшення його на 3. Команда на стан прапорів не впливає і має час виконання 2 цикли.
Команда "інкремент байта" робить додаток "1" до вмісту акумулятора A, на прапори не впливає і має час виконання 1 цикл.
Команда "інкремент байта" робить додаток "1" до вмісту заданого регістра Rn обраного банку, на прапори не впливає і має час виконання 1 цикл.
Команда "інкремент байта" робить додаток "1" до вмісту комірки, 8-розрядна адреса якої визначається символічним ім'ям direct в області резидентної пам'яті даних (РПД) чи в середовищі регістрів спеціальних функцій. Команда на прапори не впливає і має час виконання 1 цикл.
Команда "інкремент байта" робить додаток "1" до вмісту комірки резидентної пам'яті даних (РПД), адресованої умістом заданого регістра Ri обраного банку, на прапори не впливає і має час виконання 1 цикл.
Команда "інкремент двох байтів" робить додаток "1" до вмісту 16-бітового покажчика даних DPTR, причому переповнення молодшого байта DPTR (DPL) приводить до збільшення на "1" умісту старшого байта DPTR (DPH). Команда на прапори не впливає і має час виконання 2 цикли.
Команда "перехід, якщо біт установлений" виконує перехід за адресою addr, якщо вміст біта, 8-розрядна адреса якого визначається символічним ім'ям bit в області комірок резидентної пам'яті чи даних у середовищі регістрів спеціальних функцій, встановлене в "1", у противному випадку виконується наступна команда. Уміст використовуваного біта не змінюється. Адреса переходу addr визначається за допомогою додавання 8-бітового числа rel (зі знаком), розміщеного в останньому байті команди, із умістом лічильника команд PC після збільшення його на 3. Таким чином, зазначений перехід можливий у межах від -128 до +127 щодо початкової адреси наступної команди, при цьому негативне значення rel представляється двійковим числом у додатковому коді. Команда на прапори не впливає і має час виконання 2 цикли.
Команда "перехід, якщо біт встановлений і скидання цього біта" виконує перехід за адресою addr, якщо вміст біта, 8-розрядна адреса якого визначається символічним ім'ям bit в області комірки резидентної пам'яті чи даних у середовищі регістрів спеціальних функцій, встановлене в "1", у противному випадку виконується наступна команда. Вміст використовуваного біта скидається в "0". Процедура обчислення адреси переходу addr, вплив на прапори і час виконання такі ж, як у розглянутої вище команди JB bit,addr.
Команда "перехід, якщо прапор переносу встановлений" виконує перехід за адресою addr, якщо вміст прапора переносу C встановлене в "1", у противному випадку виконується наступна команда. Адреса переходу addr визначається за допомогою додавання 8-бітового числа rel (зі знаком), розміщеного в молодшому байті команди, із умістом лічильника команд PC після збільшення його на 2. Таким чином, зазначений перехід можливий у межах від -128 до +127 щодо початкової адреси наступної команди, при цьому негативне значення rel представляється двійковим числом у додатковому коді. Команда на прапори не впливає і має час виконання 2 цикли.
Команда "непрямий перехід" складає 8-бітовий вміст акумулятора A з 16-бітовим умістом покажчика даних DPTR і завантажує отриманий результат у лічильник команд PC. Зазначене додавання виконується таким чином, що перенос з молодших 8-ми біт поширюється на старші біти результату. Вміст A і DPTR не змінюється. Команда на прапори не впливає і має час виконання 2 цикли.
Команда "перехід, якщо біт не встановлений" виконує перехід за адресою addr, якщо вміст біта, 8-розрядна адреса якого визначається символічним ім'ям bit в області комірок резидентної пам'яті або даних у середовищі регістрів спеціальних функцій, скинуте в "0", у противному випадку виконується наступна команда. Вміст використовуваного біта не змінюється. Процедура обчислення адреси переходу addr, вплив на прапори і час виконання такі ж, як у розглянутої вище команди JB bit,addr.
Команда "перехід, якщо прапор переносу не встановлений" виконує перехід за адресою addr, якщо вміст прапора переносу C скинуте в "0", у противному випадку виконується наступна команда. Процедура обчислення адреси переходу addr, вплив на прапори і час виконання такі ж, як у розглянутої вище команди JC addr.
Команда "перехід, якщо вміст акумулятора не дорівнює нулю" виконує перехід за адресою addr, якщо вміст A не нуль, у противному випадку виконується наступна команда. Адреса переходу addr визначається за допомогою додавання 8-бітового числа rel (зі знаком), розміщеного в молодшому байті команди, із умістом лічильника команд PC після збільшення його на 2. Таким чином, зазначений перехід можливий у межах від -128 до +127 щодо початкової адреси наступної команди, при цьому негативне значення rel представляється двійковим числом у додатковому коді. Команда на прапори і (A) не впливає і має час виконання 2 цикли.
Команда "перехід, якщо вміст акумулятора дорівнює нулю" виконує перехід за адресою addr, якщо всі біти акумулятора дорівнюють нулю, у противному випадку виконується наступна команда. Вміст A не змінюється. Процедура обчислення адреси переходу addr, вплив на прапори і час виконання такі ж, як у розглянутої вище команди JNZ addr.
Команда "довгий виклик підпрограми" викликає безумовно підпрограму з початковою адресою addr16. При цьому 16-розрядний вміст лічильника команд PC збільшується на 3 для одержання адреси наступної команди і міститься в стек (спочатку випливає молодший байт), а вміст покажчика стека SP збільшується на 2. Адреса addr16 виходять за допомогою другого і третього байтів команди, що завантажуються відповідно в старший і молодший байти PC. Виконання програми продовжується командою, що знаходиться по отриманій адресі. Підпрограма, отже, може починатися в будь-якім місці адресного простору пам'яті програм обсягом до 64 Кбайт. Команда на прапори не впливає і має час виконання 2 цикли.
Команда "довгий перехід" виконує безумовний перехід за адресою addr16. Ця адреса виходить за допомогою другого і третього байтів команди, що завантажуються відповідно в старший і молодший байти програмного лічильника PC. Перехід, таким чином, може здійснюватися по будь-якій адресі простору пам'яті програм обсягом до 64 Кбайт. Команда на прапори не впливає і має час виконання 2 цикли.
Команда "переслати байт" виконує завантаження акумулятора A умістом заданого регістра Rn обраного банку, при цьому вміст Rn не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "переслати байт" виконує завантаження акумулятора A вмістом комірки резидентної пам'яті даних (РПД), адресованої умістом заданого регістра Ri обраного банку, при цьому вміст використовуваної комірки не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "переслати байт" виконує завантаження акумулятора A вміст комірки, 8-розрядна адреса якої визначається символічним ім'ям direct в області резидентної пам'яті чи даних у середовищі регістрів спеціальних функцій. При цьому вміст використовуваної комірки не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "переслати байт" виконує завантаження акумулятора A байтом даних data8, безпосередньо зазначеним у команді, на стан прапорів не впливає і має час виконання 1 цикл.
Команда "переслати байт" виконує завантаження заданого регістра Rn обраного банку вмістом акумулятора A, при цьому вміст A не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "переслати байт" виконує завантаження заданого регістра Rn обраного банку вмістом комірки, адреса якого визначаються символічним ім'ям direct в області резидентної пам'яті даних (РПД) чи в середовищі регістрів спеціальних функцій. При цьому вміст використовуваної комірки не змінюється. Команда на стан прапорів не впливає і має час виконання 2 цикли.
Команда "переслати байт" виконує завантаження заданого регістра Rn обраного банку байтом даних, безпосередньо зазначеним у команді і який має символічне ім’я data8. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "переслати байт" пересилає вміст акумулятора A в комірку, адрес якогї визначається символічним ім'ям direct в області резидентної пам'яті чи даних у середовищі регістрів спеціальних функцій. При цьому вміст A не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "переслати байт" пересилає вміст заданого регістра Rn обраного банку в комірки, адрес якогї визначається символічним ім'ям direct в області резидентної пам'яті чи даних у середовищі регістрів спеціальних функцій. При цьому вміст Rn не змінюється. Команда на стан прапорів не впливає і має час виконання 2 цикли.
Команда "переслати байт" пересилає байт даних між двома осередками, розташованими в області резидентной пам'яті даних (РПД) чи (і) у середовищі регістрів спеціальних функцій. Адреса осередку-джерела (осередку-приймача) визначається другим (першим) операндом і розміщається в другому (у третьому) байті команди. Необхідно відзначити, що при пересиланні вміст осередку-джерела не змінюється. Команда на стан прапорів не впливає і виконується за 2 цикли.
Команда "переслати байт" пересилає вміст комірки резидентної пам'яті даних (РПД), адресованої вмістом заданого регістра Ri обраного банку, в комірку, адрес якогї визначається символічним ім'ям direct в області РПД чи в середовищі регістрів спеціальних функцій. При цьому вміст осередку-джерела не змінюється. Команда на стан прапорів не впливає і має час виконання 2 цикли.
Команда "переслати байт" копіює байт даних, безпосередньо зазначений у команді і який має символічне ім’я data8, в комірку, адрес якогї визначається символічним ім'ям direct в області резидентної пам'яті чи даних у середовищі регістрів спеціальних функцій. Команда на стан прапорів не впливає і має час виконання 2 цикли.
Команда "переслати байт" пересилає вміст акумулятора A в осередок резидентної пам'яті даних (РПД), адресовану вмістом заданого регістра Ri обраного банку, при цьому вміст A не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "переслати байт" завантажує комірку резидентної пам'яті даних (РПД), адресовану вмістом заданого регістра Ri обраного банку, вмістом комірки, адрес якогї визначається символічним ім'ям direct в області РПД чи в середовищі регістрів спеціальних функцій. При цьому вміст осередку-джерела не змінюється. Команда на стан прапорів не впливає і має час виконання 2 цикли.
Команда "переслати байт" копіює байт даних data8, безпосередньо зазначений у команді, в комірку резидентної пам'яті даних (РПД), адресовану вмістом заданого регістра Ri обраного банку. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "переслати біт" завантажує прапор переносу C умістом біта, 8-розрядна адреса якого визначається символічним ім'ям bit в області осередків резидентной пам'яті даних (або регістрів спеціальних функцій), що допускає побітове звертання. Команда на стан інших прапорів, а також використовуваного битка не впливає і має час виконання 1 цикл.
Команда "переслати біт" копіює вміст прапора переносу C у біт, 8-розрядну адресу якого визначається символічним ім'ям bit в області комірок резидентної пам'яті даних (РПД) чи регістрів спеціальних функцій, що допускає побітове звертання. Команда має час виконання 2 цикли і на стан прапорів не впливає, за винятком случаючи, коли прапор є операндом-передавачем.
Команда "переслати два байти" завантажує покажчик даних DPTR 16-бітовою константою data16, безпосередньо зазначеної в команді, причому вміст другого і третього байтів команди завантажується відповідно в старший (DPH) і молодший (DPL) байти DPTR. Команда на прапори не впливає і має час виконання 2 цикли.
Команда "переслати байт" завантажує акумулятор A умістом комірки пам'яті програм (ПП), причому адреса використовуваної комірки обчислюються як сума вихідного вмісту A і вмісту 16-бітового покажчика даних DPTR. Таким чином, у зазначеному пересиланні може брати участь будь-яка комірка з пам'яті програм обсягом до 64 Кбайт. Вміст DPTR не змінюється. Команда на стан прапорів не впливає і має час виконання 2 цикли.
Команда "переслати байт" завантажує в акумулятор A уміст комірки пам'яті програм (ПП), причому адреса використовуваної комірки обчислюються як сума вихідного вмісту A і вмісту програмного лічильника PC, що збільшена на одиницю. Таким чином, у зазначеному пересиланні може брати участь будь-яка комірка з пам'яті програм обсягом до 64 Кбайт. Команда на стан прапорів не впливає і має час виконання 2 цикли.
Команда "переслати байт" виконує завантаження акумулятора A вмістом комірки зовнішньої пам'яті даних (ЗПД), адресованої умістом заданого регістра Ri обраного банку, при цьому уміст використовуваної комірки не змінюється. Команда на стан прапорів не впливає, має час виконання 2 цикли і забезпечує доступ до ЗПД обсягом до 256 байт.
Команда "переслати байт" виконує завантаження акумулятора A вмістом комірки зовнішньої пам'яті даних (ЗПД), адресованої умістом 16-бітового покажчика даних DPTR, при цьому уміст використовуваної комірки не змінюється. Команда на стан прапорів не впливає, має час виконання 2 цикли і забезпечує доступ до ЗПД обсягом до 64 Кбайт.
Команда "переслати байт" копіює вміст акумулятора A в комірку зовнішньої пам'яті даних (ЗПД), адресовану вмістом заданого регістра Ri обраного банку. Команда на стан прапорів не впливає, має час виконання 2 цикли і забезпечує доступ до ЗПД обсягом до 256 байт.
Команда "переслати байт" копіює вміст акумулятора A в комірку зовнішньої пам'яті даних (ЗПД), адресовану вмістом 16-бітового покажчика даних DPTR. Команда на стан прапорів не впливає, має час виконання 2 цикли і забезпечує доступ до ЗПД обсягом до 64 Кбайт.
Команда "множення" множить 8-бітову перемінну з акумулятора A на 8-бітову перемінну з регістра B, при цьому старший і молодший байти добутку завантажуються відповідно в B і A. Уміст прапора переносу C скидається в "0". Уміст прапора переповнення OV встановлюється в "1" якщо результат множення більше 0FFH, у противному випадку - також скидається. Вміст прапора AC не змінюється. Команда має час виконання 4 цикли.
Команда "немає операції" збільшує вміст програмного лічильника PC на одиницю, при цьому стан всіх інших програмно доступних елементів мікроконтролера не змінюється. Команда має час виконання 1 цикл.
Команда "логічне ЧИ" виконує порозрядну диз'юнкцію вмісту акумулятора A із умістом заданого регістра Rn обраного банку, поміщаючи результат у A. Вміст використовуваного регістра не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "логічне АБО" виконує порозрядну диз'юнкцію вмісту акумулятора A із вмістом комірки резидентної пам'яті даних (РПД), адресованої вмістом заданого регістра Ri обраного банку. Результат розміщається в A. Вміст використовуваної комірки не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Команда "логічне АБО" виконує порозрядну диз'юнкцію вмісту акумулятора A із вмістом комірки резидентної пам'яті даних (або регістра спеціальних функцій), 8-розрядна адреса якої (якого) визначається символічним ім'ям direct. Результат міститься в A. Вміст використовуваної комірки або використовуваного регістра не змінюється. Команда на стан прапорів не впливає і має час виконання 1 цикл.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.049 сек.) |