КОМАНДЫОБРАБОТКИ ДАННЫХ И
ПЕРЕДАЧИ УПРАВЛЕНИЯ
ДЛЯ МИКРОКОНТРОЛЛЕРА MC68HC908GP32
Описание к лабораторной работе
Казань 2004
Печатается по решению Редакционно-издательского совета физического факультета
УДК 621.375(03)
Плеухова Л. Ф., Таюрская Г. В. Команды обработки данных и передачи управления для микроконтроллера MC68HC908GP32. Описание к лабораторной работе. Казань - 2004, 30 с.
Цель данной работы состоит в том, чтобы научить студентов применению арифметических, логических, битовых и других операций для обработки данных в системах, построенных на базе микроконтроллера MC68HC908GP32.
Пособие предназначается студентам, аспирантам и всем пользователям, занимающимся разработкой программ для систем, построенных на базе микроконтроллеров MC68HC908GP32 фирмы Motorola.
Рецензент: ассистент кафедры радиоастрономии Казанского государственного университета Теплов В. Ю..
© Физический факультет Казанского государственного университета, 2004
ОГЛАВЛЕНИЕ
1. Команды арифметических операций....................................................... 4
2. Команды логических операций............................................................... 6
3. Команды сдвигов..................................................................................... 6
4. Команды битовых операций.................................................................... 7
5. Команды управления программой и процессором................................ 9
6. Маскирование данных и организация условных переходов............... 14
Упражнения................................................................................................ 18
ВАРИАНТ 1.............................................................................................. 18
ВАРИАНТ 2............................................................................................... 20
ВАРИАНТ 3............................................................................................... 22
ВАРИАНТ 4.............................................................................................. 24
ВАРИАНТ 5............................................................................................... 25
ВАРИАНТ 6............................................................................................... 28
Список литературы:................................................................................... 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-разрядным адресом.
Команды логических операций
Команды логических операций AND, ORA, EOR выполняют операции И, ИЛИ, Исключающее ИЛИ над разрядами содержимого аккумулятора A и адресуемого операнда (табл. 1). Команда битового тестирования BIT производит логическое умножение операндов (операция И) без записи результата, но с установкой признаков N, Z. При выполнении этих команд используются те же способы адресации, что и в командах сложения-вычитания. В командах логической инверсии COM, COMA, COMX используется только индексная, индексная по указателю стека с 8-разрядным смещением или прямая адресация с 8-разрядным адресом.
Команды сдвигов
Команды сдвигов (табл.2) выполняют арифметические (команды ASL, ASLA, ASLX, ASR, ASRA, ASRX), логические (команды LSL, LSLA, LSLX, LSR, LSRA, LSRX) и циклические (команды ROL, ROLA, ROLX, ROR, RORA, RORX) сдвиги над операндами, расположенными в регистрах A, X или адресуемой ячейке памяти. При обращении к памяти используется индексная, индексная по указателю стека с 8-разрядным смещением или прямая адресация с 8-разрядным адресом. Команды ASL, ASLA, ASLX реализуют такие же операции, как и команды LSL, LSLA, LSLX.
Таблица 2. Команды сдвигов.
Мнемокод | Команда | Операция | ||||
ASL,LSL (opr) ASLA,LSLA ASLX, LSLX | Арифметический или логический сдвиг влево | |||||
ASR(opr) ASRA ASRX | Арифметический сдвиг вправо | |||||
LSR(opr) LSRA LSRX | Логический сдвиг вправо | |||||
![]() ![]() ![]() ![]()
![]() | Циклический сдвиг влево | |||||
![]() ![]() ![]() ![]()
![]() | Циклический сдвиг вправо |