Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

B .S1 LOOP, B .S2 B10.

В первой из этих команд переход осуществляется к адресу метки LOOP, а во второй – к адресу, указанному в регистре B10.

Команды условного перехода передают управление в разные точки программы в зависимости от условия, которое указывается в команде.

Команда процессора TMS320C64x

[B0] B.S1 LOOP выполняет переход к адресу метки “LOOP”, если содержимое регистра B0 не равно нулю.

Команды циклаобеспечивают повторное выполнение группы команд при изменяющихся значениях данных. Программная организация цикла требует организации счетчика цикла (регистра с инкрементом или декрементом содержимого) и условного перехода по результатам проверки этого счетчика или к продолжению цикла, или к выходу из цикла.

Для сокращения времени выполнения цикла и упрощения программирования разработаны команды цикла, реализуемые аппаратно. При этом автоматически организуется счетчик цикла и проверка выхода из цикла.

Рассмотрим пример организации цикла в процессорах ADSP-21xx.

CNTR = 10; Загружается счетчик цикла.

DO LOOP UNTIL CE; Команда выполнять цикл

«LOOP», пока CNTR>0.

..........; Команды тела цикла.

LOOP:.......; Последняя команда цикла и проверка счетчика цикла

 

Команда DO LOOP UNTIL CE задает условия организации цикла. Во время ее выполнения в стек счетчика команд помещается адрес следующей за ней команды.

В течение того же цикла в стек циклов помещается адрес команды конца цикла и условие его завершения. По мере продолжения выполнения операций внутри цикла компаратор сравнивает адрес каждой команды с адресом последней команды цикла. До достижения этого адреса команды выполняются последовательно. Каждый раз по достижению конца цикла проверяется условие завершения цикла. Если это условие не выполняется, то программа возобновляется с первой команды цикла, а если выполняется, то выполняется команда, следующая за последней командой цикла.

Рассмотрим программную организацию цикла в процессоре TMS320C64xx.

MVK.S1 100, A1

LOOP:

...........

SUB.S1 A1, 1, A1

[A1] B.S1 LOOP

.............

Команда MVK загружает в регистр A1 количество повторений цикла 100. После каждого выполнения тела цикла команда SUB уменьшает содержимое A1 на 1. Последняя команда цикла осуществляет переход к началу цикла, если содержимое A1 больше нуля. В противном случае выполняется команда, следующая за командой условного перехода.

Использование подпрограмм требует наличия в системе команд команды вызова подпрограммы и команды возврата из подпрограммы.

Рассмотрим пример вызова подпрограмм в процессорах ADSP-21xx:

IF FLAG_IN CALL FILTR; В этой команде вызов (CALL) подпрограммы осуществляется по условию IF FLAG_IN. Это условие выполняется, если на выводе FI (вход) действует сигнал логической «1». В этом случае осуществляется переход к первой команде подпрограммы с меткой FILTR. Подпрограмма начинается с метки FILTR и заканчивается командой возврата из подпрограммы RTS (r e t urn from a s ubroutine):

FILTR:..........

..........

RTS;

Команда вызова подпрограммы может быть безусловной, например, CALL FILTR, а команда возврата из подпрограммы наоборот условной.

Если подпрограммой является подпрограмма обслуживания прерывания, то для возврата из нее используется команда RTI (r e t urn from an i nterrupt service routine).

В процессорах TMS320C3x также используются условная и безусловная команды вызова подпрограммы CALL. Например, CALLNZ R5 означает, что если бит Z в регистре статуса не установен (равен нулю), то вызывается подпрограмма, адрес которой находится в регистре R5. Командой возврата из подпрограммы является команда RETS.

К командам общего управления относятся:

1.Команды перехода процессора в различные состояния:

· STOP –останов работы генератора тактовых импульсов,

· RESET – программный сброс,

· IDLE, WAIT – переход в режим ожидания с низким потребление мощности.

2.Команды операций со стеком

· POP – выталкивание данных из стека (считывание данных из стека),

· PUSH – запись в стек.

3. NOP – нет операции

и др.

В этом разделе рассмотрена только небольшая часть команд двух семейств сигнальных процессоров. Например, процессоры TMS320C64x выполняют 209 команд, которые предусматривают различные ситуации, возникающие при реализации алгоритмов, например, перемножение знаковых и беззнаковых чисел, перемножение 32- разрядных, 16-разрядных, 8-разрядных чисел, перемножение операндов, находящихся в старшем полуслове данных или в младшем и т. д. Правильный выбор команд позволяет сократить программные затраты на реализацию алгоритма и уменьшить время выполнения программы. Последнее имеет решающее значение при обработке сигналов в реальном масштабе времени.

 


Дата добавления: 2015-07-08; просмотров: 71 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Непосредственная и прямая адресации данных| Задачи и принципы деятельности арбитражных судов

mybiblioteka.su - 2015-2024 год. (0.006 сек.)