Цитата(серый волк @ Sep 6 2007, 11:08)

да но где они инициализируются адресом?
Попробую объяснить как я бы это интуитивно понял (документацию на эту версию еще не читал, если ошибусь - пусть кто-нибудь поправит):
Как ассемблируется программа. Когда ассемблер встречает директиву начала сегмента, он устанавливает счетчик адреса в ноль и с этого места начинает размещать команды (загляните в любой листинг), присваивая им относительные адреса относительно начала этого кусочка сегмента:
Код
RSEG CODE
Start
0000 MOV a, b
0001 MOV c, b
Label1
0002 JMP label
0003 DB "Tipa stroka v oblasti koda"
001E ....... и т.д.
В конкретном случае он адрес нарасчивает не на 1, а на размер команды, но это уже детали. В процессе линковки все участки сегмента с таким имененм собираются вместе и линкер, размещая их согласно заданной ему карте размещения сегментов присваивает этим относительным адресам физические. Допустим, метка Start попала на абсолютный адрес 100. Вас ведь не удивит, что метка Label1 будет иметь абсолютный адрес 103?
Точно также можно размещать данные в памяти данных. И точно также там можно определять метки, которым при линковке будут присвоены абсолютные адреса. Поэтому я предполагаю, что ваш код можно читать так:
Код
AREA STACK, NOINIT, READWRITE, ALIGN=3; // Отсюда начинается часть сегмента STACK, неинициализированная (т.е. не генерить код для этой области в прошивке?), возможны обращения на чтение и запись, при линковке начало этой части сегмента его начало выровнять на 2^3 = 8 байт
Stack_Mem SPACE USR_Stack_Size;Метка Stack_Mem будет иметь адрес этого места после линковки, зарезервировать USR_Stack_Size байт
__initial_sp SPACE ISR_Stack_Size; Метка __initial_sp будет иметь адрес этого места после линковки, зарезервировать ISR_Stack_Size байт
Stack_Top; А метка Stack_Top будет иметь адрес этого места, т.е. конца зарезервированной под стеки области.
Цитата
И смысл их написания в примере ?
Ну, во-первых показать как писать ассемблерные исходники. Во-ворых, наверное в начале программы в указатель стека заносится адрес __initial_sp, остальные метки тоже для чего-нибудь нужны, хотя бы чтобы отметить эти места в дизассемблерном листниге отладчика.