Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 48
Текст из файла (страница 48)
Рис. 6.5. Операции арифметического, логического и циклического сдеигое Команды арифметического сдвига используют, в частности, для лтасштабв- роваиня данных в процессорах с фиксированной точкой (сгс гдов» 4А Другие арифметические команды Кроме основных арифметических команд, различными процессорами поллсрживается дополнительный набор команд, из которых наиболее распространенными являк>тся: 0 вычисление модуля числа (лвв): 0 дскремент, инкремент (окс, *нс); 0 изменение знака содержимого аккумулятора (нВО); 0 округление содержимого аккумулятора (яив); 0 нормализация (нойн, слс главу У); 0 сравнение (снв — с солсржимым аккумулятора, всполтоггтельного регистра, константой и т. п.); 0 леленис (пгу) — итерационная процелура.
6.5.3. Команды логических операций Группа команд логических операций включает следующие основные команды: 0 логических операций; 0 логического и цикчического сдвигов. Логические операции Команды логических (булевых) операций прелназначены для выполнения операций дно (умноженце), ов (сложение), исключающее ок, нот (отрицание); в различных процессорах онн в основном отличаются: 0 количеством указаний ца операнды; 0 адресацией операндов; 0 возможностью сдвига одного из операндов перед выполнением операшш; 0 выполнением операции со старшим нли младшим словом, если опсрацлы имеют разные форматы; 0 наличием в команде условия выполнения операции.
Примеры выполнения булевых операций прнвечены в табл. 6.9. Таблица 8.9. Примеры команд логических операций Алгоритмы и процессоры цифровой обработки сигналил гвг авя б. Система ясыянн Таблица Б.9 (окончани ) Примеры команд Операция логических операций Процессор оа н,+а,в Техав!гы!пяпепгз ТМ832ОСбххх Мнемонический синтаксис До операции: А = ОО ОООО 1200й В = ОО ОООО 18ООП 1.
Сдвиг (А) на 4 бита влево; (А) не меняется: ОО 0001 2000й 2. Операция ИЛИ с операндами 00 0001 2000!1 000000 18000 После операции: А = ОО ОООО 1200п В = 00 0001 ЗВООп Техав !пз1пяпеп1з ТМ832ОС5хх Алгебраический синтаксис в = в!н « +л Сы. выше 1г не нп - нхс хап НХО Хаи Если результатоперацииАЛУы 0 ДО Операции: АХО = Ох0003 АУО = ОхОООЗ После операции: АВ = Ох0006 Апа! а0 Оеч)сез АОВР-21хх Алгебраический синтаксис 6.5.4. Комбинированные команды Комбинировап цые кол!анды могут быт ь явными или неявными.
(1еявная кол!бган! иван р ная кол!аида синтаксически прслставляется как манда, од!ако, сй соотве ак одна ко- тветствует выполнение двух пли более олею явны.ои комбинированными комаплами явля!отса: кома!ша инс Логический и циклический сдвиг Погичвсхи!) сдвиг отличается ог а иф рифметического тем, что при сдвиге варево расширением знака, как старшие, "освободившиеся" биты заполняются не ас! при арифлгетическом сдвиге, а и . при ври)!лге, утяни.
Прп слвиге влево арифметический и логический сленги выпалня!отся одинаково (рис. б.5, а, в). Отл логического слвига в аз ! с, а, в. лнчия кол!анд ига в различных процессорах те же, что и лля ко . ф- ме гического сдвига. я аманн арцч- Команды циклического (или коль е (, . ьц лого) сдвига отличаются от арифметиче- ского н логического сдвигов тем, ч о б т ит, "выдвигаемый" с одной сто опы, автоматически перемещается на м р ложной сто ны, есто освободившегося" бита с прап опора ы, тел! самым образуя замкнутое кольцо (рис.
6.5„г, д). !в Таблица 0.10. Примеры явных комбинированных команд Примеры синтаксиса команды сложения Операция Процессор Поля операции и операндов зт н, "на2 ! !НРО "НР.З, В Техаз !пз1шпоепте ТМ832ОС54хх Мнемонический синтаксис Еи(А) оо 0;(Ан2) 1о (О:(АВЗ))1о'о (В]ло 840 Гй(А) -о 0:(АП2) (О:(АЙЗ))ы+ (В) ао Воо и = ни2 + "НВЗ в — в+н«в Алгебраический синтаксис (0.(АП2й ы х (О:(АЛЗ))оо ПОоо (ВЗ) .. + (Вт)- - о:(Вз) ° данные представлены с ПТ Техаз !пз1пяпеп1в ТМ8320СЗххх Мнемонический синтаксис нгтгз *на2, *низ,во ! ! навез ь5инт, пз ножение со сложением) и ее различные модификации; команды сложения ил вычигания и одновременной пересылкой результата (например, команды денс и згнс в ТМ8320С2ххх); команды с округлением результата; команль! одновременного выполнения двух однотипных арифметп!ческих операций (например, двух умножений), когда один из операндов в обеих операциях— одинаковый (набор подобных комбинированных команд поддерживается в процессорах ТМ8320С55хх) и т.
д. Неявные комбинированные колланзы раздичных вариаций имеются в системах команд практически всех ((ПОС. Явная камбинираванная кол!анди представляет собой объедннение двух кол!анл предназначенных для одновременного выполнения. Такого типа команды поддерживаются в процессорах ТМ832ОС5ххх/Зх. Синтаксическим признаком комбинации двух команд служит символ параллельности ! 1 между командами (см. разд. бЗ). Явная комбинация команд в этом случае строго реглал!ентирована, разрешены только те комбинации, которые указаны в списке команд соответствующего процессора. Так, в процессорах ТМБ320С5ххх с фиксированной точкой допускаются только комбинации одной арифметической команды (ограниченного набора из нпх) плюс команды пересылки, либо двух команд пересылок.
В процессорах ТМ832ОС)х с плавающей точкой варианты комбинаций двух команд расширя!отса, к вышеотмеченным добавляются кол!бинации: команда пересылки с логической командой, команда пересылки с командой преобразования формы представления данных ФТ <-о ПТ и др. Примеры явных комбинированных команд даются в табл. бЛО. При описании операций использованы ввеленные ранее краткие обозначения; сокрашением )11 обозначено старшее слово аккумулятора. Особенности адресации операндов см. в главе 5.
Алгорипин и процессоры цифровой обработки сигналов лава б. Системе команд 6.5.5. Команды бит-манипуляций Бттлг-мвлтттгугяцття означает выполнение операции мым в команде, битом. В ячейке памяти данных слелуюшие операции бит-лганипуляции: О обнуление бита; О установка бита; О изменение состояния бита; нзл отдельных!. указыпасили в регистре возможны О проверка биге. При выполнении соответствую!них команд значение бита, бывшее до его изменения, сохраняется в специалыюм бите регистра состояния. Колинды бит-манипуляций необходимы, в частности, лля управления режима- лги обработки данных и общего управления работой процессора в тех случаях, когда оно определятся состоянием одного бита или группы битов в управ- ляющих регистрах. Например, в процессорах ПВР56ххх фирмы Мо!ото!а лля перехода к обработке с удвоенной точностью необходимо установить бит ПМ в регистре режима МК, или лля запрещения всех прерываний па сипталалг от внутренних периферийных устройств в процессоре ТМ5320С54хх необходимо установить бит! (л!ТМ в регистре состояния БТ! и т.
д. Приведем пример команды проверки и измене!пи состояния бита в процес- сорах РВР5600х фирмы Ма!ого)а: Всис $15, тг(35) По команде проверяется состояние 15-го бита в 24-разрядной ячейке У- палтяти данных; это состояние сохраняется в бите переноса С ре~истра со- стояния, а затем изменяется на п(ютивоположное. 6.5.6. Команды управления К группе команд управления можно отнести следующие типы команд: О перехола; О цикла; О повторения; О обращения к подпрограммам; О возврата из подпрограмм; О общего управления. Команль! Уп(я!аления в целом абеспс !ива!От гйтограылпюе управление абработкай ланных и работой процессора. Рассмотрим особенности перечисленных типов команд.
Мо1ото!а ОЗР56ххх Миемоническии 123 синтаксис ЭВЕТ гг12ткс,зг321 Техзз !пз1тотлеп!з ТМ8320С2хххг бххх Мнемонический синтаксис В 2000Л Влне 2000Л,*яяз Безусловный переход к ячейке памяти программ, адрес которой хранится в регистре й2 Условный переход к ячейке памяти программ с адресом $123, если резулыат операции меньше О, иначе— к следующей команде Условный переход к ячейке памяти программ с адресом 34321, если 12-й бит в 24-разрядном регистре ХО установлен, иначе — к следующей команде Безусловный переход к ячейке памяти программ с аДресом 2000Л Условный переход к ячейке памяти программ с адресам 2000Л, если !Д(!3) = О, иначе — к следующей колганов Команды перехода Команды перехода прелназначены для изменения последовательности выполнения команд, среди них различают команды: О безусловного перехода; О условнага перехода.
Кол!а!!бы беэуоговтгого вергхода передают управление ячейке памяти программ, адрес которой указываетсв в команде. В процессорах ТМ5320Сбххх фирмы Техаз 1пз!пппепбз и процессорах фирмы Апа!03 Г)етгсез сами эти команны могут выполняться в зависимости ат условия, укаэанного в команде. К!и!алды уотовлого перехода передают управление в разные точки програмлгы в зависилюсти от условия. которое в команле может указываться: О непосредственно (символически); О именем регистра, содержимое которого проверяется на выполнение фиксированного услов!ш (например, на равенство О); О одновременно именем регистра н номером бита, состояние которого проверяется на выполнение фиксированного условия (например, на равецстгю 1).
Примеры команд перехода приведены в табл. 6.11. Особенг!ости алресзции переходов ги в ггпве 5 Таблица 6.1 1. Примеры команд условного и безусловною переходов Процессор Примеры команд условного Операция и безусловного переходов ' Глава б. Система команд гбг Таблица 6.«! (скончание) дала 2000Ь «Г !*ЛЕЗ = О!даео2000Ь Техав !пэицгпепы ТМ8320Сбхх Алгебраический синтаксис См. выше СБТВ = 10г Если результат операции АЛУ мень- ше О, выпалняегся команда, адрес ячейки памяти катарой указан в ре- гистре !1.
иначе команда восприни- мается как мок Апа!одОемсез ЛГ Ьт зонг (тш г АО8Р-21хх Алгебраический синтаксис Е) статический цикл по «зз мкт ЕЗ динамический цикл 00 то мкт Лага нгмы и процессоры цгярравай обработки сигналов Процессор Примеры команд условного Операция и безусловного переходов Команды цикла Кояганды цикга обеспечивают повторное выполнение группы команд прн изменяющихся значениях данных. Программная реализация цикла с фиксированным числом повторений группы команд требует организации счетчика цикта (регистра с инкрелгентом илн декрементом содержимого) и условного перехода по результатам проверки этого счетчика: к продолжению цикла (возврату к первой из повторяемых команд) или выходу из цикла.
Для сокращения времени выполнения цикла (уменьшении количества команд, необходимых для программной организации цикла) и упрощенна программирования разработаны команды цикла, реалггзуезгые аппаратна, что означает автоматическую организацию счетчика цикла (в специальнолг регистре) и проверку выхода из цикла. Синтаксис команд цикла лля процессоров фирм Ма!ого!а и Апа)ок л)су!сеть приведен в разд. 6.