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

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

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

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

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

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

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

 
Опции темы
Непрочитано 06.09.2007, 13:42  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Косвеная адресация и указатели

Хотелось бы узнать где применяют указатели и косвеную адресацию,чтоб в будущем может чаще с ней работать.Знаю что с масивами можно с ней работать.
Реклама:
CERGEI1982 вне форума  
Непрочитано 06.09.2007, 14:35  
mikle2000
Частый гость
 
Регистрация: 26.08.2006
Сообщений: 34
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
mikle2000 на пути к лучшему
По умолчанию

Почитайте книгу.
http://dasbook.ru/index.php?book=129

Ответ на Ваш вопрос находится на 121 странице (Указатели и адреса переменных).
mikle2000 вне форума  
Непрочитано 07.09.2007, 16:42  
Quasar_A
Прохожий
 
Регистрация: 02.08.2007
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Quasar_A на пути к лучшему
По умолчанию

Вообще странный вопрос.
Косвенная адресация применяется там где применяется , например, есть такой код:
Код:
switch (i){
case 0: function1();break;
case 1: function2();break;
case 2: function3();break;
case 3: function4();break;
default: break;
}
Как это же, реализовано с помощью указателя:

Код:
void (*function[])(void) = {function1,
                            function2,
                            function3,
                            function4
                           };

Вызов происходит так:

function[i]();
Данный вариант вообщем-то дает некоторую экономию по коду, и лично мне это удобнее, но для небольшого кол-ва функции наверное лучше switch использовать.
Но так же надо помнить, что указатель это переменная (ну либо константа), которая занимает место, соответственно нельзя бездумно плодить указатели, забивая память и код...
Так же, надо понимать, что делаешь, компиллятор чаще всего не контроллирует выход за пределы, можно элементарно адресоваться не туда).
Quasar_A вне форума  
Непрочитано 07.09.2007, 16:52  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию

Это все понятно,но есть ли выгода обратится один раз к регистру косвеной адресацией вместо прямой ? на асеме,правда при косвеной адресацией меньше возни с банками у пиков.Насчет си применял только пока что для массива,но читал что составление програм с указателями для компа программ есть выгода,как насчет микроконтролеров не знаю.
CERGEI1982 вне форума  
Непрочитано 08.09.2007, 12:21  
Quasar_A
Прохожий
 
Регистрация: 02.08.2007
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Quasar_A на пути к лучшему
По умолчанию

Цитата:
но есть ли выгода обратится один раз к регистру косвеной адресацией вместо прямой ?
Нет, выгоды нет ни какой, будет оверхед по коду.

Мое мнение, если можно обойтись без указателей, то не надо их использовать.
Quasar_A вне форума  
Непрочитано 08.09.2007, 14:17  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию

Сообщение от Quasar_A
Цитата:
но есть ли выгода обратится один раз к регистру косвеной адресацией вместо прямой ?
Нет, выгоды нет ни какой, будет оверхед по коду.

Мое мнение, если можно обойтись без указателей, то не надо их использовать.
Вот и хотел услышать это мнение,но с помощью указателей так можно замудрить прогу,что не сразу разберутся

CERGEI1982 вне форума  
Непрочитано 08.09.2007, 16:59  
my504
Прописка
 
Аватар для my504
 
Регистрация: 30.07.2006
Адрес: Фрязино, М.О.
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
my504 на пути к лучшему
По умолчанию

CERGEI1982
Простой пример:
Одна процедура по прерыванию циклически пишет массив, а другая асинхронно его анализирует. Только относительная косвенная адресация...
my504 вне форума  
Непрочитано 08.09.2007, 18:43  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию

Сообщение от my504
CERGEI1982
Простой пример:
Одна процедура по прерыванию циклически пишет массив, а другая асинхронно его анализирует. Только относительная косвенная адресация...
Тоже хорошо,вот и узнаю примеры работы с указателями и косвеной адресацией чтоб в будещем применить.
CERGEI1982 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Адресация по шине I2C vendim Микроконтроллеры, АЦП, память и т.д 4 13.09.2008 19:45
Косвенная адресация. bopohok Микроконтроллеры, АЦП, память и т.д 8 29.04.2007 00:38
Адресация RAM в PIC18 vasseff Микроконтроллеры, АЦП, память и т.д 0 20.04.2007 22:39
Указатели W3100 Skt Микроконтроллеры, АЦП, память и т.д 0 11.10.2005 03:56
Адресация в CompactFlash xelos Микроконтроллеры, АЦП, память и т.д 3 13.10.2004 21:55


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot