- •1. Теоретическая часть.
- •1.1.Группа команд арифметических операций
- •Группа команд логических операций.
- •2. Практическая часть.
- •2.1. Примеры использования арифметических команд.
- •Команды загрузки регистров а и х данными из памяти.
- •Команды вычитания.
- •Команды инкремента и декремента.
- •0050 80 7E 7c 7a 78 76 74 72 70 6e 6c 6a 68 66 64 62
- •0060 60 5E 5c 5a 58 56 54 52 50 4e 4c 4a 48 46 44 42 ' Команды умножения и арифметического дополнения.
- •2.2.Примеры использования команд байтовой логики.
- •2.3.Примеры использования команд сдвига.
- •Команды логического (или последовательного) сдвига.
- •Команды арифметического сдвига.
- •Команды циклического сдвига.
- •2.4. Примеры использования команд сравнения и тестирования. Команды сравнения.
- •0050 00 01 02 03 04 05 06 07 08 09 0A 0b 0c 0d 0e 0f ................
- •0060 00 01 02 03 04 05 06 07 08 09 0A 0b 0c 0d 0e 0f ................
- •0050 00 Ff fe fd fc fb fa f9 f8 f7 f6 f5 f4 f3 f2 f1 ................
- •0060 Ff fe fd fc fb fa f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 ................
- •Команды тестирования.
- •0050 00 01 02 03 04 05 06 00 00 00 00 00 00 00 00 00 ................
- •0050 06 01 02 03 04 05 06 00 00 00 00 00 00 00 00 00 ................
- •Контрольные вопросы.
- •Задания.
Микроконтроллер
МС68HC705K1,
лабораторная
работа 3
1. Теоретическая часть.
В данной работе изучаются:
· группа команд арифметических операций;
· группа команд логических операций.
1.1.Группа команд арифметических операций
Данную группу образуют 47 команд, выполняющие операции сложения, вычитания, инкремента и декремента байтов, сравнения байтов, целочисленного беззнакового умножения. Типы инструкций данной группы приведены в табл.1.
Таблица 1. Команды арифметических операций.
Мнемокод |
Выполняемое действие |
ФЛАГИ |
Полное | |||||
|
|
H |
I |
N |
Z |
C |
название | |
ADD
ADD #opr ADD opr ; opr=adr8 ADD opr ;opr=adr16 ADD ,x ADD opr,x ;opr=adr8 ADD opr,x ;opr=adr16 |
Сложить содержимое А с байтом данных из памяти и результат поместить в А. {A <--- (A) + (M)}
|
|
- |
|
|
|
Add Memory Byte with Accumulator | |
ADC
ADC #opr ADC opr ; opr=adr8 ADC opr ;opr=adr16 ADC ,x ADC opr,x ;opr=adr8 ADC opr,x ;opr=adr16 |
Сложить содержимое А с байтом данных из памяти и значением бита переноса С. Результат поместить в А. {A <--- (A) +(M) + C}
|
|
- |
|
|
|
Add Memory Byte and Carry Bit to Accumulator | |
SUB
SUB #opr SUB opr ; opr=adr8 SUB opr ;opr=adr16 SUB ,x SUB opr,x ;opr=adr8 SUB opr,x ;opr=adr16 |
Вычесть байт данных памяти из содержимого аккумулятора А. Результат поместить в А {A <--- (A) - (M)}
|
|
- |
|
|
|
Subtract Memory Byte from Accumulator | |
SBC
SBC #opr SBC opr ; opr=adr8 SBC opr ;opr=adr16 SBC ,x SBC opr,x ;opr=adr8 SBC opr,x ;opr=adr16 |
Вычесть байт данных памяти и бит переноса из содержимого аккумулятора А. Результат в А. {A <--- (A) - (M) - (C)}
|
|
- |
|
|
|
Subtract Memory Byte and Carry Bit from Accumulator | |
MUL
MUL |
Умножить содержимое А на содержимое индексного регистра. Произведение представлено в двухбайтовом формате, причем А содержит младший байт. {X : A <--- (A) * (X)}
|
0 |
- |
- |
- |
0 |
Multiply | |
CMP
CMP #opr CMP opr ; opr=adr8 CMP opr ;opr=adr16 CMP ,x CMP opr,x ;opr=adr8 CMP opr,x ;opr=adr16 |
Сравнить содержимое А с байтом памяти. По результату сравнения установить признаки C, Z, N. Содержимое А и байта памяти после операции не изменяется {(А) - (M)}
|
- |
- |
|
|
|
Compare Accumulator with Memory Byte | |
CPX
CPX #opr CPX opr ; opr=adr8 CPX opr ;opr=adr16 CPX ,x CPX opr,x ;opr=adr8 CPX opr,x ;opr=adr16 |
Сравнить содержимое индексного регистра Х с байтом памяти. По результату сравнения установить признаки C, Z, N. Содержимое Х и байта памяти после операции не изменяется {(X) - (M)} |
- |
- |
|
|
|
Compare Index Register with Memory Byte | |
INC
INCA INCX INC opr ;opr=adr8 INC ,x INC opr,x ;opr=adr8 |
Сложить с 1 содержимое А, индексного регистра или ячейки памяти. Результат поместить в исходное место. {A <--- (A) + 1} {X <--- (X) + 1} {M <--- (M) +1} |
- |
- |
|
|
- |
Increment | |
DEC
DECA DECX DEC opr ;opr=adr8 DEC ,x DEC opr,x ;opr=adr8 |
Вычесть 1 из содержимого А, индексного регистра Х или ячейки памяти М. Результат поместить в исходное место. {A <--- (A) - 1} {X <--- (X) - 1} {M <--- (M) -1} |
- |
- |
|
|
- |
Decrement |
Все команды арифметических операций, в том числе INC и DEC, модифицируют отдельные флаги в регистре признаков CCR.