Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦУМП2 лаб.раб.посл. вар.2.doc
Скачиваний:
5
Добавлен:
09.09.2019
Размер:
368.64 Кб
Скачать
  1. Команды передачи управления.

Команды передачи управления служат для организации ветвления программы. При ветвлении, программный счётчик РС загружается новым адресом.

Перечень команд передачи управления представлен в таблице 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).

    1. Команды работы с подпрограммами.

Имеется всего три команды работы с подпрограммами: JSR, BSR, RTS. В подпрограмму объединяется набор действий, который используется многократно и в различных местах основной программы. Переход к подпрограмме осуществляется по командам JSR, и BSR. При этом в стеке сохраняется следующий адрес основной программы, а в программный счётчик РС загружается начальный адрес подпрограммы. Выход из подпрограммы осуществляется по команде RTS.

Пример 2.6. Составить программу сложения 16 –ти восьмиразрядных целых чисел со знаком, используя подпрограмму перевода числа в дополнительный код. Числа находятся в памяти, начиная с адреса $2000.