На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 5 / Средства ускоренной записи программ Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Средства ускоренной записи программ

Многие программные средства и блоки сбора данных (стандартные и обычные) могут использоваться для ускорения выполнения программ oперационной системы MS-DOS. Эти средства следует рассматривать только, если структура системы реального времени требует ускоренного ответа от компьютера. И хоть исчерпывающее обсуждение всего этого выходит за рамки данной главы, мы все же рассмотрим некоторые из этих средств в этом разделе.


Если прикладная программа требует вычислений с использованием математических формул с плавающей запятой, применение математического процессора 8087 (или 80287/80387) может улучшить скорость вычислений на несколько порядков. Фирма "Интел" - производитель микропроцессоров 8087 - выпускает оборудование, скорость которого в некоторых математических операциях в тысячу раз возрастает, когда микропроцессор 8087 используется вместо стандартных программ математического программного обеспечения. Микропроцессор 8087 предоставляет системе команды для быстрого выполнения операций с плавающей запятой. К таким операциям относятся следующие действия: преобразование чисел, основные математические действия и некоторые трансцендентные функции (например, нахождение синусов и косинусов и логарифмов). Поскольку же математические программы стандартно присутствуют в микропроцессоре 8087, а не в памяти программ, использование микропроцессора 8087 тоже может привести к уменьшению размеров программ. Подробнее о программировании можно узнать из главы 10 "Программирование расширения числовой обработки фирмы "Интел"".


Если требуется просмотреть какой-либо массив, можно использовать команду XLAT во всех процессорах, кроме микропроцессора 8088. Команда XLAT имеет возможность производить быстрое индексирование в 256-байтовой таблице и получать содержимое указанного адреса, что показано на рисунке 5-8. Объединяя несколько команд XLAT в цепочки, можно управлять просмотром больших таблиц.


Вместо исполнения команды IN/OUT в цикле для передачи набора байтов можно исполнять команду INS/OUTS для микропроцессоров 80188, 80186, 80286 и 80386.


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


                                                        Регистр BX
                                                         указывает
                                                         на базу
                        Перед выполнением ЪДДДДДДДДДї ДДДДДДДДДДДД
                        команды XLAT,     і         і  
            Регистр AX  AL указывает на   і         і  і
          ЪДДДДДДВДДДДДї  ЭЛЕМЕНТ         ГДДДДДДДДДґ  і
          і      і AL  ГДДДДДДДДДДДДДДДДДі ЭЛЕМЕНТ і  Максимальное
          і      і     і       ЪДДДДДДДДДДґ         і  количество
          АДДДДДДБДДДДДЩ       і          ГДДДДДДДДДґ  і элементов
                              і          і         і  і равно 256
                    і          і          АДДДДДДДДДЩ  
                    АДДДДДДДДДДЩ
                   После выполнения
                   команды XLAT,
                   ЭЛЕМЕНТ замещает AL

                Рис. 5-8. Работа команды XLAT при просмотре таблиц

Использование макрокоманд вместо обращения к стандартной подпрограмме ускоряет работу программы. Это происходит вследствие того, что макрокоманда производит расширение на месте, а при обращении к стандартной подпрограмме приходится помещать адрес возврата в стек, обычно сохранять регистры и потом делать переход. Обратитесь к Главе 1 "Структурированное программирование 1: Инструменты для структурированного программирования ", где более подробно говорится о задании макрокоманд.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz