Вопрос:
Доступ к стеку достигает той же скорости, что и доступ к памяти?
Например, я мог бы выполнить некоторую работу в стеке, или я мог бы работать непосредственно с помеченным местоположением в памяти.
Итак, в частности: push ax с той же скоростью, что и mov [bx], ax? Точно так же pop ax с той же скоростью, что и mov ax, [bx]? (предположим, что bx имеет место в памяти near.)
Мотивация для вопроса:
В C часто встречается препятствие тривиальным функциям, которые принимают параметры.
Я всегда думал, что это связано не только с тем, что параметры попадают в стек, а затем выталкиваются из стека после возвращения функции, но также потому, что сам вызов функции должен сохранять контекст CPU, что означает больший объем использования стека.
Но если предположить, что кто-то знает ответ на заголовок вопроса, должно быть возможно количественно накладные расходы, которые функция использует для настройки (push/pop/preserve context и т.д.) в терминах эквивалентного количества прямой памяти доступ. Отсюда заголовок вопроса.
( Изменить: Уточнение:
near, приведенное выше, в отличие от far в сегментированной модели памяти 16 -битная архитектура x86.)