基于栈的CPU组织介绍和指南

使用基于栈的CPU组织的计算机基于称为栈。栈是数据字的列表。它用后进先出(LIFO)访问方法, 这是大多数CPU中最流行的访问方法。寄存器用于存储栈最顶层元素的地址, 即栈指针(SP)。在该组织中, 对栈数据执行ALU操作。这意味着两个操作数始终在栈上是必需的。操作后, 结果将放入栈中。
在栈的运算符上执行的主要两个操作是PUSH和POP。仅从一端执行这两个操作。
PUSH -
该操作导致在栈顶部插入一个操作数, 并减少了栈指针寄存器。 PUSH指令的格式为:

PUSH

它将数据字插入到栈顶部的指定地址。它可以实现为:
//decrement SP by 1 SP < -- SP - 1 //store the content of specified memory address //into SP; i.e, at top of stack SP < -- (memory address)

POP–
此操作导致从栈顶部删除一个操作数, 并增加了栈指针寄存器。 POP指令的格式为:
POP

它将栈顶部的数据字删除到指定地址。它可以实现为:
//transfer the content ofSP (i.e, at top most data) //into specified memory location (memory address) < -- SP//increment SP by 1 SP < -- SP + 1

操作类型指令在该CPU组织中不需要地址字段。这是因为该操作是对栈顶部的两个操作数执行的。例如:
SUB

该指令仅包含没有地址字段的操作码。它从栈中弹出两个顶部数据, 减去数据, 然后将结果推入顶部的栈中。
PDP-11, 英特尔8085和HP 3000以下是一些堆栈式计算机的示例。
基于栈的CPU组织的优势–
  • 复杂算术表达式的高效计算。
  • 指令的执行速度很快, 因为操作数数据存储在连续的存储单元中。
  • 指令长度短, 因为它们没有地址字段。
基于栈的CPU组织的缺点–
  • 程序的大小增加。
【基于栈的CPU组织介绍和指南】注意:基于栈的CPU组织使用零地址指令。

    推荐阅读