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

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

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

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

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

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

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

 
Опции темы

Косвеная адресация и указатели

Непрочитано 06.09.2007, 13:42  
CERGEI1982
Почётный гражданин KAZUS.RUN
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 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.RUN
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 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.RUN
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 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.RUN
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 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, время: 16:44.


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