ЗНАЕТЕ ЛИ ВЫ?

WARNING: Symbol TWO undefined



WARNING: Symbol X1 undefined

Использование программы, состоящей из отдельных сегментов

Обычно мало-мальски сложная прикладная программа представляет совокупность нескольких единиц – модулей. Это следует также из принципов структурного программирования. Физической единицей программы является программный модуль (файл). Логической единицей программы на ассемблере является секция или сегмент. Функциональный модуль программы (подпрограмма, процедура и т.д.) может совпадать с секцией или объединять несколько секций.

Использование нескольких программных модулей для получения общей программы обусловлено существованием больших и сложных программ, совместной работой нескольких программистов, удобством разработки программы.

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

Отдельный программный модуль не связан с определенным количеством секций - модуль может содержать одну или несколько секций, в свою очередь секция может быть расположена в нескольких программных модулях.

Каждая секция может являться отдельным функциональным элементом программы. При этом секция может быть независимо настроена на размещение в определенном месте (в соответствии с требуемыми типом и адресом памяти) используемого пространства памяти. Эта настройка на конкретные адреса, так же как и размещение секций в определенном порядке, осуществляется компоновщиком

Секции (сегменты) программы прежде всего разделяются по назначению. Как правило, во всех языках используются (иногда этим и ограничиваются) секции трех видов: секции кодов программы, секции инициализируемых данных программы (т.е. данных, которые загружаются в память) и секции не инициализируемых данных (т.е. данных появляющихся в процессе выполнения программы). Секции могут иметь имя, задаваемое программистом (пользователем).

В языке AVSIM механизм сегментов поддерживается специальными директивами.

Организация сегментов

Для организации сегментов используются несколько директив.

Директива defseg

Формат директивы

defseg <имя сегмента>[, атрибуты сегмента]

Директива определяет используемый в программе сегмент. Обязательным элементом является имя сегмента. Атрибуты сегмента (о них чуть ниже) являются необязательным элементом.

Директива seg

Формат директивы

seg <имя сегмента>

Данная директива открывает сегмент. Директива определения сегмента должна предшествовать директиве открытия. Она может стоять в начале программы.

Сегмент закрывается либо директивой открытия другого сегмента, либо директивой конца программы end.


ЛИТЕРАТУРА.

1.Проектирование микропроцессорной электронно-вычисли­тельной аппаратуры: Справочник/В.Г.Артюхов и др. - К.:Техника,1988.

2.Гуртовцев А.Л., Гудыменко С.В. Программы для микропро­цессоров - Минск: Высш. шк., 1989.

3.Р.Токхайм. Микропроцессоры. - М.:Энергоатомиздат, 1989.

4.Григорьев В.Л. Программное обеспечение микропроцессорных систем. - М.:Энергоатомиздат,1989.

5.Гольденберг Л.М. и др. Цифровые устройства и микропроцес­сорные системы. -М.:Радио и связь,1992.

6.Хоровиц П.,Хилл У. Искусство схемотехники Т.2. - М.:Мир,1983.

7.Микропроцессоры и микропроцессорные комплекты интегральныхсхем. В 2-х томах./под ред. В.А.Шахнова - М.:Радио и связь,1989.

8. Учебный стенд SDK-1.1. Руководство пользователя

9. ADuC 812. Многоканальный АЦП со встроенным микропроцессором и FLASH.

10. ADuC 812. Multichannel 12-Bit ADC with Embedded FLASH MCU

1. Учебный стенд SDK-1.1. Руководство пользователя (Версия 1.0.11).

11. Принципиальная схема учебного лабораторного стенда SDK-1.1 (Rev 4, 03/2005).

12.. PCF8583: Clock/calendar with 240 x 8-bit RAM Datasheet. 1997.

13. AT24C02A/04A: Two-wire Automotive Temperature Serial EEPROM (Rev D, 4/2007).

14. Specification WH1602A-NYG-CT (Rev 0, 04/2004).

 





Последнее изменение этой страницы: 2017-01-25; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.216.79.60 (0.006 с.)