gladov 0 27 октября, 2006 Опубликовано 27 октября, 2006 · Жалоба Доброе время суток всем. Решил попробовать IAR для меги и возник вопрос: для чего компилятор заводит второй стек (CSTACK) для хранения данных? Чем ему аппаратный не нравится? Имхо такой подход менее прозрачный, а значит, более подвержен ошибкам как со стороны разработчиков самого компилятора, так и со стороны пользователей оного при написании асмовых вставок. Кроме того, постоянно занята регистровая пара Y, в скорости работы приварка нет, да и 2 раздельных области памяти всегда больше скушают, чем одна общая. Я конечно понимаю, что разработчики компилятора совсем не дураки и сделано это с определенной целью, но с какой??? :blink: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 27 октября, 2006 Опубликовано 27 октября, 2006 · Жалоба Это сделано ввиду отсутствия у штатного указателя стека продвинутых методов адресации (автоинкремент, автодекремент, указание со смещением), которые есть у регистра Y. Т. к. через стек происходит передача параметров функциям и на нём же организовываются автоматические переменные, то такие методы адресации просто необходимы. Можно было обойтись и одним указателем, но при входе в функцию его всё равно пришлось бы перегружать в Y или другую пару (экономии, как видите, нет), да и быстродействие при этом гробилось бы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gladov 0 27 октября, 2006 Опубликовано 27 октября, 2006 · Жалоба Это сделано ввиду отсутствия у штатного указателя стека продвинутых методов адресации (автоинкремент, автодекремент, указание со смещением), которые есть у регистра Y. Т. к. через стек происходит передача параметров функциям и на нём же организовываются автоматические переменные, то такие методы адресации просто необходимы. Можно было обойтись и одним указателем, но при входе в функцию его всё равно пришлось бы перегружать в Y или другую пару (экономии, как видите, нет), да и быстродействие при этом гробилось бы. Спасибо большое :cheers: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться