- •Команды обработки данных и передачи управления для микроконтроллера mc68hc908gp32
- •Удк 621.375(03)
- •1. Команды арифметических операций
- •2. Команды логических операций
- •3. Команды сдвигов
- •4. Команды битовых операций
- •5. Команды управления программой и процессором
- •6. Маскирование данных и организация условных переходов
- •Упражнения
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Список литературы:
ФИЗИЧЕСКИЙ ФАКУЛЬТЕТ
КАЗАНСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
Плеухова Л. Ф., ТаюрскаяГ. В.
Команды обработки данных и передачи управления для микроконтроллера mc68hc908gp32
Описание к лабораторной работе
Казань 2004
Печатается по решению Редакционно-издательского совета физического факультета
Удк 621.375(03)
Плеухова Л. Ф., Таюрская Г. В. Команды обработки данных и передачи управления для микроконтроллера MC68HC908GP32. Описание к лабораторной работе. Казань - 2004, 30 с.
Цель данной работы состоит в том, чтобы научить студентов применению арифметических, логических, битовых и других операций для обработки данных в системах, построенных на базе микроконтроллера MC68HC908GP32.
Пособие предназначается студентам, аспирантам и всем пользователям, занимающимся разработкой программ для систем, построенных на базе микроконтроллеров MC68HC908GP32 фирмы Motorola.
Рецензент: ассистент кафедры радиоастрономии Казанского государственного университета Теплов В. Ю. .
© Физический факультет Казанского государственного университета, 2004
ОГЛАВЛЕНИЕ
3
1. Команды арифметических операций 4
2. Команды логических операций 6
3. Команды сдвигов 6
4. Команды битовых операций 7
5. Команды управления программой и процессором 9
6. Маскирование данных и организация условных переходов 13
Упражнения 17
ВАРИАНТ 1 17
ВАРИАНТ 2 19
ВАРИАНТ 3 21
ВАРИАНТ 4 23
ВАРИАНТ 5 25
ВАРИАНТ 6 27
Список литературы: 30
1. Команды арифметических операций
Команды арифметических операций (табл.1) выполняют соответствующие действия над операндами, один из которых располагается в аккумуляторе A, где размещается затем результат. При операциях сложения и вычитания с учетом и без учета признака переноса C (команды ADC, ADD, SBC, SUB) второй операнд M адресуется любым способом, кроме относительного и индексного с постинкрементом. Команда двоично-десятичной коррекции DAA выполняется после команды ADD для получения правильного результата, если в качестве слагаемых использовались двоично-десятичные числа (две тетрады представляют два десятичных разряда числа).
Команда умножения MUL выполняется над 8-разрядными операндами без знака, расположенными в регистрах A, X, 16-разрядное произведение X:A размещается в этих же регистрах (старший байт в X, младший байт в A). Команда деления DIV использует в качестве делимого 16-разрядный операнд H:A (старший байт в H, младший байт в A), делитель находится в регистре X. Полученное 8-разрядное частное размещается в аккумуляторе, остаток – в регистре H.
При операциях инкремента, декремента (команды INC, INCA, INCX, DEC, DECA, DECX) и изменения знака (команды NEG, NEGA, NEGX) используются следующие способы адресации: индексная, индексная по указателю стека с 8-разрядным смещением или прямая с 8-разрядным адресом.
Команды AIX, AIS позволяют корректировать значение адреса, размещенного а регистрах H:X или SP, путем сложения их содержимого с 8-разрядной константой, которая задается в виде непосредственного операнда Im. Этот операнд является числом со знаком (представляется в дополнительном коде).
Команды сравнения CMP, CPX выполняют вычитание операндов без записи результата, но с установкой значений признаков V, N, Z, C в соответствии с полученным результатом. Эти команды используют все возможные способы адресации операнда, кроме относительного и индексного с постинкрементом. Команда CPHX производит сравнение 16-разрядных операндов, одним из которых является содержимое индексного регистра H:X, а вторым – непосредственно заданный в команде двухбайтовый операнд Im или содержимое двух рядом расположенных ячеек памяти M:M+1. В последнем случае команда CPHX использует 8-разрядную прямую адресацию.
Таблица 1. Команды арифметических и логических операций, сравнения и тестирования
Мнемокод |
Команда |
Операция |
ADD (opr) |
Сложение |
A + M A |
ADC (opr) |
Сложение с переносом |
A + M + С A |
SUB (opr) |
Вычитание |
A - M A |
SBC (opr) |
Вычитание с заемом |
A - M - С A |
MUL |
Беззнаковое умножение |
A * X X : A |
DIV |
Беззнаковое деление |
H:A / X -> A, остаток -> H |
DAA |
Двоично-десятичная коррекция результата сложения | |
INC (opr) |
Инкремент M |
M + 1 M |
INCA |
Инкремент A |
A + 1 A |
INCX |
Инкремент X |
X + 1 X |
DEC (opr) |
Декремент M |
M - 1 M |
DECA |
Декремент A |
A - 1 A |
DECX |
Декремент X |
X - 1 X |
NEG (opr) |
Изменение знака M |
0 - M M |
NEGA |
Изменение знака A |
0 - A A |
NEGX |
Изменение знака X |
0 - X X |
AIX #Im |
Сложение H:X с константой |
H:X + Im -> H:X |
AIS #Im |
Сложение SP с константой |
SP + Im -> SP |
CMP (opr) |
Сравнение A с M |
A – M, установка V,N,Z,C |
CPX (opr) |
Сравнение X с M |
X - M, установка V,N,Z,C |
CPHX (opr) |
Сравнение H:X c M:M+1 |
H:X – M:M+1, установка V,N,Z,C |
TST (opr) |
Тестирование M |
M - 0, установка N,Z |
TSTA |
Тестирование A |
A – 0, установка N,Z |
TSTX |
Тестирование X |
X – 0, установка N,Z |
AND (opr) |
Логическое И |
A M A |
ORA (opr) |
Логическое ИЛИ |
A M A |
EOR (opr) |
Исключающее ИЛИ |
A M A |
COM (opr) |
Логическая инверсия M |
M M |
COMA |
Логическая инверсия A |
A A |
COMX |
Логическая инверсия X |
X X |
BIT (opr) |
Битовое тестирование |
A M, установка N,Z |
Команды тестирования TST, TSTA, TSTX устанавливают признаки N, Z в соответствии со значением выбираемого операнда. В команде TST можно использовать индексную, индексную по указателю стека с 8-разрядным смещением или прямую адресацию с 8-разрядным адресом.