Hulm 0 18 мая, 2007 Опубликовано 18 мая, 2007 · Жалоба не получается разместить в ОЗУ абсолютный сегмент данных например с адреса 040H набираю к примеру DSEG AT 40H OZU1 SEGMENT DATA RSEG OZU1 R0_0: DS 1 R1_0: DS 1 все равно встает с адреса 08H, а нужно с 040H что делаю не так ?? и ещё вопрос в догонку :) если использую ассемблер AX51.exe отчего-то возникают жалобы на синтаксические ошибки при этом у A51.exe всё в порядке :07: ну какая ошибка в строке: WR2 EQU P2.3 если рядом похожая строка WR1 EQU P2.2 проходит нормально Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-JonnS- 0 20 мая, 2007 Опубликовано 20 мая, 2007 (изменено) · Жалоба У меня работает конструкция: 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/ Изменено 20 мая, 2007 пользователем -JonnS- Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DPL 0 22 мая, 2007 Опубликовано 22 мая, 2007 · Жалоба 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 0 24 мая, 2007 Опубликовано 24 мая, 2007 · Жалоба Спасибо всем! Всё оказалось просто :) Трудно читать документацию на аглицком Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться