Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++
Шрифт:
Существует пять директив ассемблера для формирования выходного файла листинга.
Директива NEWPAGE вставляет разделители страниц. После такой директивы листинг программы продолжится с новой страницы. Данная директива, как и последующие, применяется для выделения программных фрагментов и оформления листинга программы. Пример ее использования:
Директива PAGELENTH регулярно вставляет разделитель страниц после указанного количества строк. Формат ее записи:
Директива LEFTMARGIN оставляет левое поле с указанным числом столбцов (знакомест символов). Формат ее записи:
Директива INDENT осуществляет отступ строк программы в исходном коде с указанным числом столбцов. Формат ее записи:
Директива PAGEWIDTH определяет ширину строк листинга с указанным числом столбцов. Формат ее записи:
Директивы NEWPAGE и PAGELENGTH могут быть использованы для нумерации страниц, в то время как директивы LEFTMARGIN, INDENT и PAGEWIDTH используются для того, чтобы сделать каждую страницу удобной для чтения. Эти директивы могут быть помещены в любом месте исходного файла.
Директива ENDMOD указывает на завершение программного модуля. Программа ассемблера останавливается, когда достигает директивы ENDMOD. Формат ее записи:
Глава 12. Форматы данных
В этой главе говорится о форматах представления данных в сигнальном процессоре при выполнении вычислительных операций.
Сигнальные процессоры используются в основном для цифровой обработки сигналов. Поэтому в программах для них часто используются арифметические команды для математической обработки чисел. Поскольку все данные в процессоре представлены в двоичном формате, в нем используется двоичная арифметика. Для лучшего понимания операций, выполняемых над числами в двоичной арифметике, необходимо хорошо представлять форматы данных этих чисел и приемы, используемые в двоичной арифметике.
С форматом представления данных в процессоре тесно связаны такие понятия, как целочисленная и плавающая арифметика. Другими словами, арифметические операции, выполняемые процессором, могут производиться с целыми или с вещественными числами. Известно, что вещественные числа имеют целую и дробную части, отделяемые друг от друга запятой. Если запятая не меняет своего положения в формате представления чисел при выполнении арифметических операций, говорят, что данные представлены в формате с фиксированной запятой. Например: 7,4×0,5=3,7. Здесь положение запятой фиксировано как для операндов, так и для результата. Недостатком такого представления является небольшой диапазон обрабатываемых чисел, определяемый количеством разрядов шины данных. Другим форматом представления данных может служить формат с плавающей запятой, где используется показатель степени. Например: 1,8×103:2,0×102=9,0×100. Здесь существенно расширяется диапазон обрабатываемых чисел за счет введения показателя степени, но снижается точность результата.
Аппаратное
Вспомним форматы представления данных в двоичной арифметике. Формат представления двоичного числа обычно включает в себя знак, запятую и величину. Знак показывает, является число положительным или отрицательным. Запятая отделяет целую и дробную части числа.
Знак двоичного числа может быть представлен одним битом. Как правило, ноль указывает на положительное значение числа, а единица на отрицательное его значение. Знаковый бит обычно крайний левый бит (старший бит).
Как известно, в двоичной арифметике операция вычитания заменяется сложением чисел, представленных в дополнительном коде. Положительные числа не требуется переводить в дополнительный код. Отрицательные числа в дополнительном коде изменяют свою запись.
Существует несколько форматов представления отрицательных чисел в дополнительном коде. Наиболее распространенным методом является дополнение до двух, который используется в семействе процессоров ADSP-21XX.
Преимущество формата дополнения до двух состоит в том, что он обеспечивает уникальное представление нулевого значения числа, в то время как другие форматы имеют разные представления отрицательного и положительного нуля. В формате дополнения до двух ноль считается положительным, поэтому абсолютная величина максимального отрицательного числа, которое может быть представлено определенным количеством двоичных разрядов, больше на единицу, чем величина наибольшего положительного числа.
С помощью n бит в дополнительном коде можно представлять диапазон чисел от -2n-1 до 2n-1– 1, где n-1 разрядов отводится под величину, а 1 разряд под знак числа. Например, с помощью 16-разрядной шины данных в дополнительном коде можно представить числа в диапазоне от -32768 до 32767.
Существует два способа перевода отрицательного числа в формат дополнения до двух. Первый способ состоит из инвертирования всех разрядов числа и прибавления к нему единицы. Второй способ заключается в инвертировании всех разрядов числа левее младшего единичного разряда. Положительные числа не требуется переводить в дополнительный код. Ниже приведен пример перевода отрицательного 16-разрядного числа -5 по первому способу:
Пример перевода отрицательного числа -5 по второму способу:
Если сложить число -5 в дополнительном коде с числом 6, получим: