более одного стека в микропроцессоре - PullRequest
0 голосов
/ 23 апреля 2010

можно ли использовать более одного стека в микропроцессоре? и если я могу, как я могу прогаммировать эти?

Ответы [ 4 ]

1 голос
/ 23 апреля 2010

Конечно, вы можете. Некоторые архитектуры ЦП имеют несколько указателей стека - даже 8-битные процессоры, такие как M6809 . И даже если эта концепция не реализована в оборудовании ЦП, вы можете легко создать несколько стеков в программном обеспечении. Указатель стека - это просто индексный регистр, поэтому вы можете (например) использовать регистры IX и IY Z80 для реализации нескольких стеков.

0 голосов
/ 02 июля 2011

На некоторых платформах стек, используемый для адресов возврата, полностью отделен от стека, используемого для передачи параметров. Действительно, на некоторых платформах компиляторы C не допускают рекурсию и не используют какой-либо стек для передачи параметров. Честно говоря, мне нравятся такие конструкции, поскольку они сводят к минимуму вероятность проблем со стеком, вызывающих ошибочное поведение программы.

0 голосов
/ 24 апреля 2010

Что касается того, как это.Обычно существует специальный регистр или область памяти, которая используется для указания на стек.Использование другого стека так же просто, как установка этого значения.Все зависит от процессора и архитектуры, поэтому зависит от того, который вы используете.

0 голосов
/ 23 апреля 2010

Если ваш микропроцессор имеет более одного аппаратного стека, то да, вы можете.Однако вам придется написать ассемблер, поскольку ни одна реализация c / c ++ не использует несколько стеков.

Было бы проще помочь, если бы вы могли точно сказать, о какой архитектуре вы говорите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...