Вам бы азбуку почитать … про стек памяти кучи …
«Ложите» четырьмя – не запутаетесь.
Роман, я хочу сказать, что Вы не туда лезете! Для программирования С/С++ Вам нахер не надо знать слово стек. Так же Вам нахер не надо знать как именно хранятся числа. Работайте средствами языка (а в языке нет никакого стека и в котором не определено в каком порядке хранятся байты числа). Не умничайте. Просто забудьте про эти страшные слова и пользуйтесь теми, средствами, что есть в языке.
Я хочу разобраться , что в этом плохого ? Я же написал вопрос риторический… Помниться Вы мне сами говорили что частично нельзя научиться программировать контроллеры… А я тоже не хочу все время сидеть на аурдишном коде с его ограничениями
Сохраняется регистры 28 и 29 (Y)
Делается окно в стеке на 4 байта (два RCALL)
Получившийся указатель стека копируется в Y
Наша переменная укладывается в окно стека побайтно от младшего к старшему…
В 8 битном AVR не летает ничего кроме 8 битных значений !!!
- Как бы ни передавались параметры, все локальные переменные всегда будут лежать в стеке.
- Трудно представить ситуацию, при которой в одном и том же стеке было бы целесообразно размещать параметры процедуры в одном порядке, а локальные переменные - в другом. Значит, логично считать, что в стеке все числа лежат единообразно.
- Трудно представить ситуацию, при которой формат хранения числа должен бы был зависеть от того, в каком месте памяти это число хранится - в области данных или в области стека. Следовательно, вообще все числа хранятся в памяти единообразно.
Тогда при чем здесь ИМХО и отладчик? Достаточно обычной логики, чтобы получить достоверный ответ.
По поводу регистров: как раз в AVR они лежат в общем адресном пространстве. Т.е. никак не отличаются от других областей памяти.
PS. Петрович прав: отсутствуют какие-либо основания для того, чтобы числа в разных областях памяти хранились по-разному.
ТС просто решил что стек это где то ещё, типа как flash в AVR в другом адресном пространстве с иной адресацией и поплыл …
Нет, ну бывают МК и с аппаратным стеком.
Нет. я знаю что стек в основной памяти и как раз везде и написано что идет навстречу кучи уменьшая адрес…отсюдого и родился вопрос , как там располагается и какие проблемы могут возникнуть при физическом обращении к адреса в стеке если обращаться к своим переменным
int main()
{
stack<string> s;
s.push("A"); // Вставляем `A` в stack
s.push("B"); // Вставляем `B` в stack
s.push("C"); // Вставляем `C` в stack
s.push("D"); // Вставляем `D` в stack
// возвращает общее количество элементов в stack
cout << "The stack size is " << s.size() << endl;
// печатает вершину stack (`D`)
cout << "The top element is " << s.top() << endl;
s.pop(); // удаление верхнего элемента (`D`)
s.pop(); // удаление следующей вершины (`C`)
cout << "The stack size is " << s.size() << endl;
// проверяем, пуст ли stack
if (s.empty()) {
cout << "The stack is empty\n";
}
else {
cout << "The stack is not empty\n";
}
return 0;
}
вроде как тоже Си и средства языка…
Пора за попкорном…
Причём, иногда, глубиной 2 или даже 8! уровней.)
Ну в данном случае я про программный
Вот адреса возвратов пишутся в стек иначе чем переменные !!!
Нет, это не Си.
Это не средства языка, а библиотека.
А чего ходить? Доставку надо заказывать.
Да ладно…
А вот Керниган считает , что СИ … и в языке понятие
стек есть…
и к тому же
а библиотеки это что - не средства языка ? Большинство из них на СИ написано..
для программирования С/С++ Вам нахер не надо знать слово стек
Ну не знаю программировать контроллер и не знать в общих чертах как он работает …
это все равно , что играть на фортепьяно по памяти и незнать нот… А что я вот легко могу сыграть Земляни , или Блюе систем… Хотя мне медвет на ухо наступил и ноты кроме как названия я незнаю…
не я неспорю чтобы помигать лампочкой и подергать двигатель , а после этого горда говорить - я запрограмировал МК , может оно и не надо . Но эт не для меня…
Дядя, ну ты даёшь! Я чуть было не поперхнулся!)
В Си ВООБЩЕ ничего нет! Никаких ВООБЩЕ библиотек, ты понимаешь? Это уже твоя инициатива, писать ли библиотеки или нет.)) Ну и то, как ты напишешь, так оно и будет.)))
я сказал , что это относится к средствам языка а не сам язык…
Я вроде даже с картинками из отладчика всё описал … Всё равно есть вопросы ?