Главная » Просмотр файлов » Мысловский Э.В. Цифровые сигнальные процесссоры (2003)

Мысловский Э.В. Цифровые сигнальные процесссоры (2003) (1264219), страница 7

Файл №1264219 Мысловский Э.В. Цифровые сигнальные процесссоры (2003) (Мысловский Э.В. Цифровые сигнальные процесссоры (2003)) 7 страницаМысловский Э.В. Цифровые сигнальные процесссоры (2003) (1264219) страница 72021-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 7)

В языке ассемблера идентификатор - этопоследовательность из латинских букв, цифр и следующих знаков: “_”, “-”. Различаютсяидентификаторы длиной до 32 символов. Кроме того, идентификаторы являютсязависимыми от регистра, то есть идентификатор WORD и идентификатор word различны.Запрещено начинать идентификаторы с цифры.Зарезервированы следующие идентификаторы:413.5.3 Форматы представления данныхВ языке ассемблера ADSP-218x имеются средства для записи целых чисел вдвоичной, десятичной, восьмеричной и шестнадцатеричной системах счисления.Десятичныечислазаписываютсябезспецификаторов,шестнадцатеричные-спрефиксным спецификатором 0х (нуль и х) или Н#, восьмеричные - с префикснымспецификатором 0(нуль), двоичные - с префиксным спецификатором В#.Пример:Определение различных чисел языка ассемблера ADSP-218хДесятичные•12•+67•-89Восьмеричные•066•+077•-05442Внимание - не используйте префикса 0 для десятичных чисел, поскольку,например 044<>44Шестнадцатеричные•OxOFl•0хА2•H#1BДвоичные•В#011•В#10010013.5.4 Арифметические и логические операторы языка ассемблераЯзык ассемблера поддерживает арифметические и логические выражения.Существуют две разновидности выражений:•Арифметические или логические операции с двумя или более целымиконстантами (25 + 14, (15 — 4)*4, OXff & Н#12)•Операция плюс или минус числовая константа (flag + 1, data - 6)Операторы языка ассемблера схожи с операторами языка С.•+,- - сложение, разность•*,/ - умножение, деление•% - деление по модулю•«,»- двоичный сдвиг влево и вправо•& - логическое И (AND)•| - логическое ИЛИ (OR)•^ - логическое ИСКЛЮЧАЮЩЕЕ-ИЛИ (XOR)•LENGTH(symbol) - размер symbol•ADDRESS (symbol) — начальный 16-разрядный адрес symbol•symbol - адрес symbol•PAGE(symbol) - значение старших 8 бит адреса symbolАдрес буфера и операторы определения длиныЯзыкассемблераподдерживаетдваспециальныхопределения адреса ^ и оператор определения длины %.43оператора.Оператор^bufer - Возвращает адрес буфера%bufer - Возвращает размер буфераПример:Пример работы с буффером .VAR buf[3] – 1,2,3;I0 = ^buf; /* в 10 заносится адрес buf */L0 = %buf /*в L0 заносится размер буфера, то есть - 3 */Сложением и вычитанием констант могут быть образованны простые выражения^bufer + constant^bufer - constant%bufer + constant%bufer - constantПример: Пример адресной арифметики^buf + 3%buf - 1Смысл подобных выражений следующий: в случае оператора адреса - мымодифицируем этот адрес, а в случае оператора определения длины - изменяем длину.

Нерекомендуется использовать увеличение длины, гак как это может привести к корреляцииданных, что, в свою очередь, приводит к трудноопределимым ошибкам.3.5.6 КомментарииВы можете вставлять комментарии в любом месте исходного текста, заключив ихв скобки {}, за исключением строк директив С препроцессора. Применение вложенныхкомментариев не разрешено. Чтобы использовать комментарии в строках содержащихдирективы С препроцессора (начинающиеся с символа #) используйте правила С#директива /* комментарий */443.5.7 Директивы препроцессора САссемблер ASM-21xx включает С препроцессор, который позволяет использоватьдирективы, указанные в таблицеТаблица 3.2 Директивы препроцессораДирективаЗначение#includeВставить текст из другого исходного файла#defmeМакроопределение.

Позволяет определять различныемакросы, например #define add AR = АХО + AY0#undefОтмена макроса, например, после директивы #undef addмакрос add перестаёт существовать#ifДиректива условного ассемблирования, условие задаетсянекоторой константой#ifdefДиректива условного ассемблирования, условие задаетсяналичием выбранного макроопределения#ifndefДиректива условного ассемблирования, условие задаетсяотсутствием выбранного макроопределения#elseВключение текста по альтернативной ветке дирректив #if ,#ifdef, #ifndef#endifЗавершения включения условного текста3.6 Директивы языка ассемблераДирективыассемблерауправляютпроцессомассемблирования.Ониобрабатываются препроцессором, но в отличие от инструкций не генерируют приассемблировании код.

Директива ассемблера начинается с точки и заканчивается точкой сзапятой. Некоторые директивы имеют параметры и аргументы. Параметры следуют сразуза директивой и разделяются косой чертой; аргументы следуют после параметров..DIRECTIVE/параметр/параметр ...аргумент; {комментарий}453.6.1 Программные модули (.MODULE)Директива .MODULE обозначает начало программного модуля и определяетназвание модуля. Исходный файл может содержать только один модуль.Директива имеет форму:.MODULE/параметр/параметр... имя модуля;В качестве параметров могут выступать: RAM или ROM тип памяти, ABS=aдpecабсолютный стартовый адрес (не используйте с STATIC), SEG=seg_name размещение вуказанном сегменте, ВООТ=0-7 размещение копии на странице начальной загрузки,STATIC статичное размещение модуля в памятиПараметры BOOT и STATIC используются только в системах с памятьюначальной загрузки (т.е.

все процессоры семейства, за исключением ADSP-2100). Второйспособ размещения модулей на страницах начальной загрузки реализуется прииспользовании ключа редактора связей -i.Если тип памяти не определен, то по умолчанию принимается тип RAM (ОЗУ).Параметр ABS размещает код модулей программ в определенных адресах памятипрограмм, что делает их неперемещаемыми.

Это означает, что редактор связейрезервирует память для модулей по указанным адресам. Модули, которые не имеютпараметра ABS, перемещаемы. Параметр SEG размещает модуль в указанный сегментпамяти, который объявлен в файле системной конфигурации. Если вы определяете обапараметра ABS и SEG и указываете абсолютные адреса, которых нет в данном сегменте,вы увидите сообщение об ошибке при запуске редактора связей.Параметр BOOT используется для размещения копии модуля на странице памятиначальной загрузки с указанным номером. Модуль будет сохранен в памяти начальнойзагрузки памяти до тех пор, пока он не будет загружен и выполнен. Можно разместитькопии модулей на нескольких загрузочных страницах, позволяя получить доступ к егопрограммам или данным, например:Пример: Декларация модуля.MODULE/BOOT-0/BOOT=1/BOOT=246Другой способ реализации этого, использование параметра STATIC которыйсохраняет модуль в памяти программ, когда загружаются страницы начальной загрузки.Параметр BOOT применяется также ко всем переменным .VAR и объявлениямбуферов данных внутри модуля - помните, что память начальной загрузки и памятьпрограмм, обычно в основном, содержат как программу, так и данные.Директива .ENDMODE указывает на завершение программного модуля.Программа ассемблера останавливается, когда достигает директивы .ENDMODE.Примеры объявления модулей:Пример: Объявление перемещаемого модуля filter-routine размещенного всегменте памяти с именем fir, который определен в выходном .LDF файлесистемного конфигуратора..MODULE/SEG=fir filter-routine;Пример: Объявляение модуля main-prog, который должен быть размещен впамяти RAM по адресу 40 (шестнадцатеричный).MODULE/RAM/ABS=0х0040 main-prog;.Система может иметь до 8 загружаемых страниц.

Когда выбираются атрибутызагружаемых модулей параметрами RAM, ROM, SEG и ABC, они применяются к памяти,где размещен код, во время выполнения, а не к памяти начальной загрузки. Такимобразом, при конфигурировании распределения памяти во время исполнения, вы должныоперировать терминами памяти программ и памяти данных. Редактор связей определяетрасположение программ и данных в памяти, в соответствии с вашими объявлениямисегментов для системного конфигуратора и вашим объявлением модуля на ассемблере.Редактор связей конструирует также страницы памяти начальной загрузки, но вы неможете напрямую указать расположение модуля в загрузочной памяти.Процессор не может получить и выполнить инструкцию из памяти начальнойзагрузки; содержимое страницы памяти начальной загрузки должно быть вначалезагружено во внутреннюю память программ, и только затем код выполняется.

Если выхотите, чтобы модуль (или переменная/буфер) существовали во внутренней ли внешнейпамяти процессора, в течение выполнения некоторой страницы начальной загрузки,необходимо ассоциировать ее определителем BOOT с этой страницей. Это заставитредактор связей оставить пространство для объекта во время выполнения кода страницы.47Выходной файл листинга редактора связей .шар показывает расположение вашейпрограммы в области загрузочной памяти, также как соответствующее отражение впамяти программ во время выполнения. Например, следующая директива зановообъявляет модуль main_prog от объявленного ранее.

Модуль будет сохранен на странице0:Пример: Сохранение модуля main_prog на странице 0.MODULE/RAM/ABS-0x0040/BOOT=0 main_prog;параметры RAM и ABS этой директивы применяются к внутренней памяти программпроцессора (считая, что ММА=0).Далее приведен пример, который сохраняет копии перемещаемого модуля нанескольких загрузочных страницах:Пример: Сохранение копии перемещаемого модуля shifter на несколькихзагрузочных страницах.MODULE/RAM/BOOT=0/BOOT=2/BOOT=3 shifter;Если разрабатывается программный модуль, который будет использоваться нанескольких страницах начальной загрузки, например, содержащий подпрограммы, вызахотите, чтобы код оставался на месте, при загрузке различных страниц. Для того чтобыдостигнуть этого, при объявлении имени модуля нужно указать параметр STATICПараметр ABS не может использоваться совместно с параметром STATIC.

ОпределительSTATIC предотвратит перезапись модуля, как в том случае, когда при сбросе загружаетсястраница 0 (если ММАР=0), так и в том, когда программно вызываются страницами 1-7.Редактор связей гарантирует это при размещении вашей программы в памяти. Еслимодуль не объявлен как STATIC, он может быть частично или полностью перезаписансодержимым какой-либо загрузочной страницы. Это применимо к модулю как в случае свнутренней, так и с внешней памятью.Когда редактор связей распределяет память для хранения вашей программы, онразбивает ее на 9 независимых частей: незагружаемая память программ/данных изагружаемые страницы 0-7.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6447
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее