Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 38
Текст из файла (страница 38)
197 удава 5. Адресация Алгоритмы и процессоры цифровой обработки сигналов Сюва команды хранит код операции, указания на операнды и другую пн- Формацию о команде. Слово расищрения может хранить указание на тот операнд. лля которого прн определенной адресации недостаточно лгеста в слове команды. Различными процессорами поддерживаются олнословные и двусловные форматы команд. В процессорах с однословным форматом слово расширения отсутствует, и указания на все оверанпы, независимо от типа адресащгп, размещаются в слове команды. В процессорах с двусловнылг форматом слово расширеггия можст использоваться по назначеник>, либо отсутствовать. в этом случае команда становится олпословной.
Замечание Иногда применяется трексловный формат команды (например, в процессорах мбс8 )Ох фирмы ма)ото)а), который отнесем к числу исключений Структурой слова комаггды булем называть условное разделение слова команды на части (поля), содержащие различного рода информацию о команде. Структура слова команлы рассматривается в агаве б. Количество операндов в команде, а также возможные способы их указании опрепеляготся архитектурой процессора и спецификой конкретной команды. В настоящей главе обсуждаются основные из возможных способов указания операндов, безотносительно их использования в команде.
Согласно месту хранения операплы могут указываться: П адресами ячеек памяти данных, если они хранятся в ячейках памяти данных; номер ячейки, в которой хранится операнд, называется его адресвц; П илгеналнг регистров. если они хранятся в регистрах; П канстагггпа>ги, если опи хранятся в слове комыщы или в слоне расширения.
В свого очередь, место хранения определяет возможные способы указания операнда в команде: П лля алресов ячеек памяти панных — прямой или косвенный; П лля имен регистров — только прямой; П лля констант — непосредственный. Трем способам указаний на операнды соотвстствугот три типа влресапнп или зри различные адресации: П прямащ П косвенная; П непосредственная. В командах утгравгегггггг выполнением операций (безусловных и условных переходах, вызовах подпрограмм, аппаратных циклах и т. и.) указывается адрес ячейки памяти программ — алрес лругой команды, к которой осущсствляет— ся переход. Эту команду лля краткости часто называют переходом, ее адрес — адрессл>г перехода, а обращение к пей — адресацией перехода (в отличие от адресации операнла).
Адрес персхопа может указываться прямо илп косвенно, что соответствует двум различным адресациям псрсхопов; их особенности также рассматриваются в этой главе. При описании различных адресаций операндов будем пазыватгк П исггатняелгылс адресом — адрес операнда (исходных ланных или результата), указываемый (прямо или косвенно) или вычисляемый по указагппо в команде; П исгпочгггском — регистр, из которого считывают операнл (исходных лаппых); П прнелгникан — регистр, в который записывают операнд (результат).
Заметим, что исполняемый адрес, источник или приемник всегда связан с операнлолц поэтому не требуется уточнений типа "исполняемый адрес операнда" и т. и. 5.1. Прямая адресация Адресацию операнла называют прямой, если в команде пспосречственно указывается: П исполняемый адрес' П адрес операнда на странице памяти данных, по которому автоматически вычисляется исполняемый алрес; П имя источника или приемника. Рассмотрим особе)и>ости каждой из разновилностей прямой алресапни операнлов. 5.1.1.
Прямое указание адресов Операнды могут прямо указываться исполняемыми алресами или злресамп на странице памяти данных, если процессором поддерживается этот тип апресации. Различают процессоры, поддерзкггваюгцие прямое указание алресов: П в команпах операций над панными и пересылок ланных, например. процессоры ТМ$320С2ххх/5ххх Фирмы Тсхаз 1пзгщгпепгз; П только в командах пересылок данных, например, процессоры фирм Мосого!а и Ала!оя Ое»(сея, а также процессоры, не ггаддсрзкивак>ггсгге прямое указание адресов ни в олной команде. например, процессоры ТМБ320ССбххх фирмы Техаз 1лышп)епцс Алгоритмы и процессоры цифровой обработки сигналов процессора РБР5600х фирмы Могого1а содержит операнд, указанный ис- полняемым 16-разрядным абсолютным адресом 35415 в х-памяти данных (память данных в процессорах фирмы Мошго1а имеет два отдельно алре- суемых пространства — Х и т'); исполняемый адрес хранится в слоне расширения.
Пример выполнения команды привелен на рис. 5.2. По команле моче происходит: (55415) х-пкмятн ~ АО. Команда МОЧЕ У0$$41$ Паале вылалненая Перев выполнением Х -память даннык Х вЂ” память денных гз о гз о $5415 $1234$6 $5415 Аккумулятор А Аккумулятор А 55 46 47 г4 гз О 55 46 47 24 23 о $00 123456 000000 Аг Ат Аг А1 АО АО Рис.
5.2. Пример выполнении команды МОЧЕ Х: $5415, АО 2. Команда пересылки ДХО = ОМ<ох1ООО11 процессора АКР-21хх фирмы А00108 Реч)сез солержит операнд, указанный исполняемылт 16-разрядным абсолютнылт алрссом ох1000, который хранится в слове команды (формат всех команд в процессорах фирмы А03108 Реч)сез — однословный). Пример выполнения команды приведен на рис. 5.3. По команде происходиг. (Ох1000) — АХО. Исполняемый адрес Если в процессоре отсутствует условное разделение памяти данных на страницы, исполняемый адрес указывается полностью. Прн двусловном формате короткие исполняемые адреса хранятся в слове команды, длинные — в слове расширения.
Приведем примеры прямого указания исполняемого адреса. 1. Команда пересылки МОЧЕ Х1$5415, АО рлааа б. Алрвсацил команда АХВ = Оалок1000); Паоле вылалненая Память данных Память данных 15 О 15 0 ОК1000 1 Ок1234Д октооо ( охтгзв 1 15 0 15 О Ахо [она) АХО ~ок3567Д Рио. 5.3. пример выполнения команды дхо = ом10х10001 т АОО Х процессора ТМ8320С2ххх солержит операнд, указанный символическим именем х адреса на странице памяти данных.
Абсолютный адрес о на странице р, соответствующий символическомУ имени Х, хранится в слове команды, в специально отвеленных 7 битах. Номер страницы р задается программно в 9-разрядном регистре указателя страницы РР, размещаемом в рептстре состояния. Исполняемый 1б-разрялный адрес вычисляется как л + р х 128 (страница содержит 128 ячеек). Пример выполнения команды приведен на рис. 5.4. По команде Аоо происходит: (А) + (Х) — А. 4 Команда пересылки в памяти данных МЧКО 1ОООЬ, Х процессора ТМБ320С5ххх фирмы Техаз)пзгпнпепьз содержит: ° операнл, укатанный символическим именем х алреса на странице памяти данных; исполняелтый адрес вычисляется так же, как в примере 1; Адрес на странице памяти данных Прямое указание адреса операнда на странице памяти ланных используется в процессорах, память данных которых условно раздьц1ена на страницы, на- пример, в процессорах ТМБ32ОС2ххх/5ххх/Зх.
Исполняемый адрес вычисляется автоматически с учетом страницы, номер которой задается пользователем и хранится в указателе страницы РР (Рата Рош1ег), размещаемом в регистре состояния. Приведем примеры прямого указания адреса на странице памяти данных. 3. Команда сложения 5. Адресация Команда умножения с накоплением идс одт1, Одтг, А, а Перед еылалнением Паолв еылалнення Память данных Память данных 15 0 207Л [ '1284Л ~ 15 О гОТЛ ~ тавкр ~ Аккумулятор Аккумулятор З1 (!3АТ!) х (РАТ2] + (А) — Б' ()3АТ! ) — ° регистр Т. З! 0 ОООО 244ЕЛ ОООО 1212Л После еылолнеми Пкред еылалнением Помять дкннык Пенять дон ньи 15 0 207Л ( 5878Л ] 15 О 207Л [ 5578Л1 Перед выполнением После еыпал ная 15 0 гом [ 1гзял1 15 О гом ~ ~гзел] Память даннык Память денньяс Аккуянлятар А Аккумулятор А 15 О 15 О гоул ~2955Л ) гоул ~ 1гЗ4Л ] Зз о С::::::::3 оо оооо то дол ОО ОООО 100ОЛ 15 О 75 О 10ООЛ [ 235ВЛ Аккумулятор В 0 Аккумулятор В О 1ОООЛ ~ гЗЫл ] 29 00 ОС4С 0000Л ОО 0000 0004 Л 15 О Ре налет ~ МТВЛ ] 15 0 Ремстр Т Алгоритмы и процессоры цифровой обработки сигнала ° операнд.
указанный исполняемым 16-разрядным абсолютным адресом 1ОООЬ, когорый хранится в слове расширения комаплы. Каменде ОР = 4; Х = 7Л; исполняЕмый адрес = 128 4+ 7 я 519 = 207Л (101 " Рис. 5.4. Пример выполнения команды АОО Х Пример выполнения команды приведен ца рис. 5.5. По команде ичко происходит (1ООО!1) Х. Команда МЧКО 1000Л, Х ОР = 4; х = 7л; исполняемый адрес - "128. 4 + 7 = 519 = 207л ля) Рис. 5.5. пример выполнения команды ичко 1000л, х процессора ТМ532ОС54хх содержит четыре операнда: ° два операнла (сомножители), указанные символическими именами Одт1 и оятг адресов иа странице памяти данных; ° два операцла, указанные как д и а (см.
пример 1О). Согласно правилу выполнения команды, оба адреса Одт1 и Одтг хранятся в слове комаиды (на каждый из них отведено по 4 бита) и находятся иа одной странице памяти, указанной в 9-разрядном регистре указателя страницы 0Р. Исполняемые 13-разрялиые (4 + 9) адреса операцдов вычисляются так жс, как в примере 1. Пример выполнения команды приведен ца рис. 5.6. По команде идс происходит: К ме де Мде ОАТ1.ЬАтг,д, В РР= 4 ОАТ1 =7Л;калалняемыйедрес = 128.4+ 7 =519лн=207Л Оп=к; Одтг=М;ис а няем йедрео = 1гВ 4+1О=Вгглн=гОМ Рис. 5.5.