我可以在微处理器中使用多个堆栈吗? 如果可以,我该如何编程呢?
答案 0 :(得分:1)
当然可以。有几种CPU架构有多个堆栈指针 - 甚至是低位的8位处理器,例如M6809。即使该概念未在CPU硬件中实现,您也可以轻松地在软件中创建多个堆栈。堆栈指针基本上只是一个索引寄存器,因此您可以(例如)使用Z80的IX和IY寄存器来实现多个堆栈。
答案 1 :(得分:0)
如果你的微处理器有多个硬件堆栈,那么你可以。您必须编写汇编程序,因为没有c / c ++实现使用多个堆栈。
如果您可以确切地说出您正在谈论的架构,那将会更容易提供帮助。
答案 2 :(得分:0)
至于如何。通常,存在用于指向堆栈的特殊寄存器或存储器位置。使用另一个堆栈就像设置此值一样简单。这与处理器和体系结构有关,因此取决于您使用的那个。
答案 3 :(得分:0)
在某些平台上,用于返回地址的堆栈与用于参数传递的堆栈完全分开。实际上,在某些平台上,C编译器不允许递归,也不使用任何堆栈进行参数传递。坦率地说,我喜欢这样的设计,因为它们可以最大限度地减少堆栈问题导致错误的程序行为的可能性。