Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №2 / Laboratornaya_rabota_2B (2).docx
Скачиваний:
3
Добавлен:
21.06.2022
Размер:
71.94 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«Московский политехнический университет» (московский политех)

Факультет машиностроения

Кафедра «Автоматика и управление»

Лабораторная работа №2

По дисциплине «Проектирование микропроцессорных систем управления»

Группа

204-251

Бригада

2

Студенты

Антоненко А.С.

Сагитова Л.С.

Сагитова Н.С.

Ширяев В.А.

Преподаватель

Палагута К.А.

Москва 2021 Лабораторная работа №2. Микроконтроллер mc68hc908gp32: команды обработки данных

Цель работы: изучение команд арифметических, логических и битовых операций, команд сравнения и сдвигов.

Теоретическое введение

Команды арифметических операций (табл.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

OR (opr)

Логическое ИЛИ

A  M  A

EOR (opr)

Исключающее ИЛИ

A  M A

COM (opr)

Логическая инверсия M

M  M

COMA

Логическая инверсия A

COMX

Логическая инверсия X

BIT (opr)

Битовое тестирование

A  M, установка N,Z

Команды тестирования TST, TSTA, TSTX устанавливают признаки N, Z в соответствии со значением выбираемого операнда. В команде TST можно использовать индексную, индексную по указателю стека с 8-разрядным смещением или прямую адресацию с 8-разрядным адресом.

Команды логических операций AND, ORA, EOR выполняют операции И, ИЛИ, Исключающее ИЛИ над разрядами содержимого аккумулятора A и адресуемого операнда (табл. 2.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

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

Команды битовых операций BCLR, BSET (табл.3) устанавливают соответственно значение 0 или 1 для n-го бита в операнде, 8-разрядный адрес которого содержится во втором байте команды (8-разрядная прямая адресация). Номер бита n задается в команде. Команды CLC, CLI и SEC, SEI устанавливают значение 0 или 1 признаков C, I в регистре условий CCR. При этом команды CLI и SEI разрешают и запрещают обслуживание поступающих запросов прерывания.

Таблица 3. Команды битовых операций и установки признаков.

Мнемокод

Команда

Операция

BCLR n, (opr)

Установка значения бита bn = 0

0  bn

BSET n, (opr)

Установка значения бита bn = 1

1  bn

CLC

Установка признака C = 0

0  C

CLI

Установка признака I = 0

0  I

SEC

Установка признака C = 1

1  C

SEI

Установка признака I = 1

1  I

При выполнении команд пересылки, арифметических и логических операций, сдвигов, битовых операций происходит изменение значений определенных признаков в регистре условий CCR. В табл.2.4 изменение этих признаков показано символами:

"+" - установка значения по результату операции,

"-" - значение остается неизменным,

0, 1 - установка соответствующих значений признаков,

“х” – принимает произвольное значение.

Таблица 4. Установка значений признаков при выполнении команд.

Команды

Признаки

V

N

I

N

Z

C

LDA, LDX, LDHX, STA, STX, STHX,

0

-

-

+

+

-

TST, TSTA, TSTX, AND, ORA, EOR, BIT,

INC, INCA, INCX, DEC, DECA,DECX

+

-

-

+

+

-

ADD, ADDC

+

+

-

+

+

+

SUB, SBC, NEG, NEGA, NEGX,

CMP, CPX, CPHX, ASL, ASLA, ASLX,

+

-

-

+

+

+

LSL, LSLA, LSLX, ASR, ASRA, ASRX,

ROL, ROLA, ROLX, ROR, RORA, RORX

LSR, LSRA, LSRX

+

-

-

0

+

+

CLR, CLRA, CLRX, CLRH

0

-

-

0

1

-

COM, COMA, COMX

0

-

-

+

+

1

MOV

+

-

-

+

+

-

MUL

-

0

-

-

-

0

DIV

-

-

-

+

+

-

DAA

x

-

-

+

+

+

CLC

-

-

-

-

-

0

CLI

-

-

0

-

-

-

SEC

-

-

-

-

-

1

SEI

-

-

1

-

-

-

SWI

-

-

1

-

-

-

RTI, TAP

+

+

+

+

+

+

BRCLR, BRSET

-

-

-

-

-

+

WAIT, STOP

-

-

0

-

-

-

Общее задание:

Записать по адресу $30 код $7C, по адресу $40 код $D4, по адресу $41 код $3E. Загрузить и выполнить программу. Ответить на вопрос: «Какой код в результате окажется по адресу $31 и что будет во флагах N и Z?»