Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Косвенная адресация vs udata

Непрочитано 10.10.2010, 22:44  
kt368bm
Частый гость
 
Регистрация: 07.07.2007
Сообщений: 11
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
kt368bm на пути к лучшему
По умолчанию Косвенная адресация vs udata

Добрый вечер!

Можете пожалуйста подсказать ответ на несколько вопросов по MPASM под PIC18F4585.

Подскажите пожалуйста, директива микроассемблера udata может использоваться в случае если я хочу обращаться к инициализированным с её помощью переменным таким образом:
Код:
    udata
SUB_reg     res  4
     CODE
              LFSR          FSR0, SUB_reg
              movlw     .4
              movwf     count
TX_byte       movff     POSTINC0,SSPBUF            ; отправляем байт
              btfss     SSPSTAT,BF                 ; ждём отправки первого байта
              bra       $-2                        ; ждём...
              decfsz    count                      ; декрементируем счётчик байтов
              bra       TX_byte                    ; если передали не все байты - повтор
Этот код работает, просто создаваемый мною проект будет сильно разрастаться и соответственно будет съедено много оперативной памяти, не случится ли ситуация что переменная SUB_reg, под который зарезервировано 4 байта будет состоять не из последовательно размещенных 4-х байтов в ОЗУ, а они будут разбросаны, следовательно когда я буду обращаться к виртуальному регистру POSTINC0, то после обращения к нему FSR0 будет указывать не на следующий байт переменной SUB_reg, а на чёрт знает что? И ещё.
1.Что если я использую почти всю память и не останется четырех рядом размещенных ячеек?
2.Могу ли я с помощью директивы разместить переменную в области памяти доступа (использую PIC18F4585) и одновременно чтобы переменная инициализировалась так чтобы при вызове другой подпрограммы на месте этой переменной могли быть инициализированы другие переменные (по аналогии с udata_ovr)? Или используя udata_acc мы не имеем ни малейшего представления куда ассемблер запишет эту переменную, т.е. перед обращением к ней нужно выбрать соответствующий банк памяти с помощью директивы banksel?
Реклама:
kt368bm вне форума  
Сказали "Спасибо" kt368bm
warel (27.06.2019)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Косвенная адресация yellow87 Микроконтроллеры, АЦП, память и т.д 39 01.07.2010 11:48
Косвенная адресация данных в PIC16F690 sasha_popov Микроконтроллеры, АЦП, память и т.д 15 03.03.2010 17:14


Часовой пояс GMT +4, время: 17:42.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.