реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> IAR и RSTACK/CSTACK, Для чего???
gladov
сообщение Oct 27 2006, 13:33
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Доброе время суток всем.

Решил попробовать IAR для меги и возник вопрос: для чего компилятор заводит второй стек (CSTACK) для хранения данных? Чем ему аппаратный не нравится? Имхо такой подход менее прозрачный, а значит, более подвержен ошибкам как со стороны разработчиков самого компилятора, так и со стороны пользователей оного при написании асмовых вставок. Кроме того, постоянно занята регистровая пара Y, в скорости работы приварка нет, да и 2 раздельных области памяти всегда больше скушают, чем одна общая. Я конечно понимаю, что разработчики компилятора совсем не дураки и сделано это с определенной целью, но с какой??? blink.gif
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Oct 27 2006, 16:01
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Это сделано ввиду отсутствия у штатного указателя стека продвинутых методов адресации (автоинкремент, автодекремент, указание со смещением), которые есть у регистра Y.
Т. к. через стек происходит передача параметров функциям и на нём же организовываются автоматические переменные, то такие методы адресации просто необходимы.
Можно было обойтись и одним указателем, но при входе в функцию его всё равно пришлось бы перегружать в Y или другую пару (экономии, как видите, нет), да и быстродействие при этом гробилось бы.
Go to the top of the page
 
+Quote Post
gladov
сообщение Oct 27 2006, 16:04
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Цитата(IgorKossak @ Oct 27 2006, 20:01) *
Это сделано ввиду отсутствия у штатного указателя стека продвинутых методов адресации (автоинкремент, автодекремент, указание со смещением), которые есть у регистра Y.
Т. к. через стек происходит передача параметров функциям и на нём же организовываются автоматические переменные, то такие методы адресации просто необходимы.
Можно было обойтись и одним указателем, но при входе в функцию его всё равно пришлось бы перегружать в Y или другую пару (экономии, как видите, нет), да и быстродействие при этом гробилось бы.


Спасибо большое cheers.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.02994 секунд с 7
ELECTRONIX ©2004-2016