"DVDXpert" - компас в мире Hi-Fi и High End техники и другой stereo и home cinema аппаратуры.
ГЕНЕРАЦИЯ ОБЪЕКТНЫХ МОДУЛЕЙ (ФАЙЛОВ) |
12-01-2024 |
Если используется опция HIGH, то в выражении используются только биты с 8 по 15. В случае использования опции LOW используются только биты с 0 по 7. Если используется опция UPPER, то в выражении будут использованы только биты с 16 по 21й.
РАСПРЕДЕЛЕНИЕ ОЗУ
Пространство ОЗУ должно быть распределено в секции данных. Существует пять типов секции данных:
UDATA неинициализированные данные. Это наиболее общий тип секции данных. Ячейки памяти резервируются, но не инициализируются (в них не записываются конкретные значения). К ячейкам можно получить доступ только при помощи метки, указывающей на эту секцию, или путем косвенной адресации.
UDATA_ACS неинициализированные данные доступа. Эта секция данных используется для переменных, которые будут помещены в ОЗУ быстрого доступа микроконтроллеров PICI8CXX. Эта область ОЗУ используется для прямого обращения к данным некоторыми инструкциями.
UDATA_OVR неинициализированные перекрывающиеся данные. Такая секция данных применяется для переменных, которые могут быть объявлены по тому же самому адресу, что и другие переменные в этом модуле или других подключаемых модулях. Типичным применением этого типа секции данных является хранение временных переменных
UDATAJSHR неинициализированные скрытые данные. Эта секция данных применяется для переменных, которые будут помещены в "теневой" или противоположный активному банк памяти.
IDATA инициализированные данные Компоновщик генерирует таблицу соответствия, которая может быть использована для присвоения переменным в этой секции конкретных значений. К ячейкам можно получить доступ только при помощи метки, указывающей на эту секцию, или путем косвенной адресации.
Однако, поскольку абсолютные адреса переменных и адреса меток неизвестны во время ассемблирования, не всегда в итоге получается корректный код. Например, в зависимости от величины программы, ее код может поместиться на одной странице, а может и не поместиться Соответственно, одна из меток в конце программы (и ее физический адрес) может соответствовать одной странице программной памяти, а может и другой Но заранее, в начале ассемблирования, это не всегда очевидно и ассемблер может сгенерировать некорректный код
Маршрутизатор
ЭЛЕКТРОННЫЕ ЧАСЫТЕРМОМЕТР НА PIC16F84
ЦИФРОВЫЕ КОНСТАНТЫ И СИСТЕМЫ СЧИСЛЕНИЯ
ГЕНЕРАЦИЯ ОБЪЕКТНЫХ МОДУЛЕЙ (ФАЙЛОВ)