Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OMT&МП2.doc
Скачиваний:
10
Добавлен:
13.11.2019
Размер:
2.35 Mб
Скачать

Команды переходов

В МП К1801 предусмотрено 15 команд условного перехода и 2 коман­ды безусловного перехода.

  1. Команды безусловного перехода: BR и JMP.

    1. Команда JMP имеет формат:

0001DD,

где DD - поде адресации.

На языке Ассемблера команда будет иметь вид:

JМР N(R7) 000167

N

где N - смещение в байтах относительно содержимого R7.

Пример 9.1

Адрес

Мнемоника

Код

1000

JMP 6(R7)

000167

1002

6

000006

1004

HALT

000000

1006

HALT

000000

1010

HALT

000000

1012

HALT

000000

После считывания команды JMP 6(R7) счетчик команд R7 имеет значение 1004. Происходит суммирование (в восьмеричной коде) чисел 1004 и 6, и совершается переход на адрес 1004+6=1012. В данной программе произойдет переход на 6 байтов вперед и выполнится команда НALТ по адресу 1012.

При переходе назад смешение N записывается в дополнительном коде.

Пример 9.2.

Адрес

Мнемоника

Код

776

HALT

000000

1000

JMP – 6(R7)

000167

1002

– 6

177772

В данном примере происходит переход на одну инструкцию назад (т.е. на 2 байта назад). Когда процессор закончил чтение команды JМР –6(R7) и начал ее выполнение, счетчик команд R7 имел значение 1004. При выполнении команды содержимое счетчика команд суммируется с числом –6, записанном в дополнительном коде: 1004 – 6 = 776, и выполняется переход по адресу 776.

    1. Команда безусловного перехода BR используется для переходов от -128 до127 и имеет вид:

000400+ХХХ - в восьмеричном коде,

где XXX - смещение (8 двоичных разрядов)

При выполнении перехода смещение автоматически умножается на 2.

Пример 9.3

Адрес

Мнемоника

Код

1000

BR +3

000406

1002

HALT

000000

1004

HALT

000000

1006

HALT

000000

1010

HALT

000000

В отличие от команды JМР команда BR занимает лишь два байта, а не четыре. В примере 3 происходит переход с адреса 1000 по команде BR +3 на адрес 1010. После считывания процессором команды BR +3 счетчик команд R7 имеет значение 1002, при выполнении перехода указанное смещение умножается на 2 и переход происходит по адресу 1002+3*2=1010.

При переходе назад смещение записывается в дополнительном коде.

Пример 9.4

Переход на 2 слова назад (т. е. на 4 байта назад).

Адрес

Мнемоника

Код

774

HALT

000000

776

HALT

000000

1000

BR – 3

000775

В данном примере происходит передача управления на 2 слова на­зад, но т. к. при выполнении инструкции BR счетчик команд R7 уже содержит адрес следующей по порядку инструкции (1002), то смещение равно -3. Это смещение умножается процессором на 2, и происходит пере­ход на 6 байтов назад.

  1. Команды условных переходов имеют такой же формат, как и ко­манда BR, только в старшем байте записывается код, соответствующий данной команде условного перехода. Смещение в младшем байте слова, занимаемого командой, вычисляется по тем же правилам, что и в команде BR.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]