- •Цифровые устройства и микропроцессоры Микроконтроллеры фирмы “Freescale”
- •117454, Москва, просп. Вернадского, 78 предисловие
- •1.1. Основные характеристики микроконтроллера.
- •1.2 Способы адресации
- •Карта памяти микроконтроллера.
- •1.4. Принципы написания программы.
- •Метка, операция, операнд(ы); комментарий
- •2. Исследование команд пересылки данных
- •3. Арифметические команды.
- •5. Команды работы с битовыми полями.
- •7. Содержание отчета
- •8. Контрольные вопросы и задания.
- •Методические указания по выполнению лабораторной работы №2 Изучение команд сдвигов, команд передачи управления и специальных команд.
- •1. Команды сдвигов.
- •Команды передачи управления.
- •2.1. Команды безусловного перехода.
- •2.2. Команды условного перехода.
- •Команды работы с подпрограммами.
- •Команды работы с прерываниями.
- •3. Специальные команды.
- •4. Содержание отчета
- •Контрольные вопросы и задания
- •Методические указания по выполнению лабораторной работы №4. Программирование ацп и фильтрации сигналов.
- •Библиографический список.
Команды передачи управления.
Команды передачи управления служат для организации ветвления программы. При ветвлении, программный счётчик РС загружается новым адресом.
Перечень команд передачи управления представлен в таблице 2.2.
Таблица 2.2.
JMP |
BEQ |
BCS/BLO |
BGT |
BLS |
JSR |
SWI |
BRA |
BNE |
BCC/BHS |
BGE |
BHI |
BSR |
RTI |
BRN |
BMI |
BVS |
BLT |
BRSET |
RTS |
|
NOP |
BPL |
BVC |
BLE |
BRCLR |
|
|
2.1. Команды безусловного перехода.
К командам безусловного перехода относятся:
JMP – безусловный переход по новому адресу (по соответствующей метке);
BRA – переход по новому адресу “всегда”;
BRN – никогда не переходить по новому адресу (метке);
NOP – никакая операция не выполняется (но 2 такта микроконтроллера затрачиваются).
Команды безусловного перехода передают управление другому участку программы независимо от состояния битов регистра статуса микроконтроллера или ячеек памяти.
Пример 2.2.
org $1000
ldab #$FF
stab $0003
ldaa #$01
m1 nop
rola
staa $0001
jmp m1
Осуществить пошаговое выполнение программы примера 2.2, наблюдая за состоянием семисегментного индикатора. Объяснить назначение каждой команды.
2.2. Команды условного перехода.
Переход осуществляется в зависимости от состояния соответствующих битов регистра статуса (CCR) или соответствующих битов ячейки памяти. К командам условного перехода относятся следующие команды: BEQ, BNE, BMI, BPL, BCS/BLO, BCC/BHS, BVS, BVC, BGT, BGE, BLT, BLE, BLS, BHI, BRSET, BRCLR.
Команды условного перехода могут использоваться для организации циклических вычислений.
Пример 2.3. Вычислить сумму 16–ти целых положительных чисел, хранящихся в оперативной памяти начиная с адреса $2000. Результат записать в память по адресу [$2020,$2021].
Для того, чтобы программа была компактной организуем цикл на 16 проходов, используя команду условного перехода, и счётчик с обратным счётом.
org $1000
ldx #$2000
ldaa #$10
staa $2060
clra
clrb
m1 addb 0,x
bvc m2
inca
m2 inx
dec $2060
bne m1
std $2020
Осуществить выполнение программы, предварительно записав в память числа. Объяснить назначение каждой команды.
Пример 2.4. Составить программу, вычисляющую число отрицательных чисел в массиве из 64 целых чисел со знаком, расположенном в памяти начиная с адреса $2000. Результат поместить в память по адресу $20A0.
Пример 2.5. Составить программу, высвечивания всех элементов семисегментного индикатора при появлении на входе порта А логической единицы в младшем разряде. При написании программы использовать одну из команд условного перехода по значению бита ячейки памяти (BRSET, BRCLR).
Команды работы с подпрограммами.
Имеется всего три команды работы с подпрограммами: JSR, BSR, RTS. В подпрограмму объединяется набор действий, который используется многократно и в различных местах основной программы. Переход к подпрограмме осуществляется по командам JSR, и BSR. При этом в стеке сохраняется следующий адрес основной программы, а в программный счётчик РС загружается начальный адрес подпрограммы. Выход из подпрограммы осуществляется по команде RTS.
Пример 2.6. Составить программу сложения 16 –ти восьмиразрядных целых чисел со знаком, используя подпрограмму перевода числа в дополнительный код. Числа находятся в памяти, начиная с адреса $2000.