Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как декларировать абсолютный сегмент в Keil ?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
Hulm
не получается разместить в ОЗУ абсолютный сегмент данных например с адреса 040H
набираю к примеру


DSEG AT 40H
OZU1 SEGMENT DATA
RSEG OZU1

R0_0: DS 1
R1_0: DS 1

все равно встает с адреса 08H, а нужно с 040H

что делаю не так ??


и ещё вопрос в догонку smile.gif
если использую ассемблер AX51.exe отчего-то возникают жалобы на синтаксические ошибки
при этом у A51.exe всё в порядке 07.gif

ну какая ошибка в строке:

WR2 EQU P2.3

если рядом похожая строка

WR1 EQU P2.2

проходит нормально
-JonnS-
У меня работает конструкция:
dseg AT 0x40
Var1 DS 1
Var2 DS 1
После компиляции Var1 разположена по адр. 0x40 a Var2 по адр. 0x41
Eще можно посмотрет:
http://www.keil.com/support/docs/162.htm
http://www.onembedding.com/tools/keil/arti.../explicit_addr/
DPL
Цитата(Hulm @ May 18 2007, 15:47) *
DSEG AT 40H
OZU1 SEGMENT DATA
RSEG OZU1

R0_0: DS 1
R1_0: DS 1


Первая строка описывает абсолютный сегмент данных с адреса 40.
Вторая строка описывает перемещаемый сегмент данных.
Третья строка сразу выбирает перемещаемый сегмент, то есть абсолютный никак не используется.
Следующие строки выделяют память в перемещаемом сегменте под переменные.
Таким образом, реально переменные размещаются в перемещаемом сегменте, а компоновщик пихает его туда, куда считает нужным.
Чтобы все было так, как хочется, нужно написать:
DSEG AT 40H
R0_0: DS 1
R1_0: DS 1
Hulm
Спасибо всем! Всё оказалось просто smile.gif
Трудно читать документацию на аглицком wacko.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.