Команды логических операций




КОМАНДЫОБРАБОТКИ ДАННЫХ И

ПЕРЕДАЧИ УПРАВЛЕНИЯ

ДЛЯ МИКРОКОНТРОЛЛЕРА 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 Логический сдвиг вправо  
Операнд
С
ROL(opr) ROLA ROLX

Циклический сдвиг влево  
Операнд
С
ROR(opr) RORA RORX

Циклический сдвиг вправо  

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: