📜  基于堆栈的CPU组织介绍

📅  最后修改于: 2021-06-28 14:43:22             🧑  作者: Mango

使用基于堆栈的CPU组织的计算机基于称为stack的数据结构。堆栈是数据字的列表。它使用后进先出(LIFO)访问方法,这是大多数CPU中最流行的访问方法。寄存器用于存储堆栈最顶层元素的地址,称为堆栈指针(SP) 。在该组织中,对堆栈数据执行ALU操作。这意味着两个操作数始终在堆栈上是必需的。操作后,结果将放入堆栈中。

在堆栈的运算符上执行的主要两个操作是PushPop 。仅从一端执行这两个操作。

  1. 推 –
    此操作导致在堆栈顶部插入一个操作数,并减少了堆栈指针寄存器。 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) 
  2. 流行音乐 –
    此操作导致从堆栈顶部删除一个操作数,并增加了堆栈指针寄存器。 POP指令的格式为:
    POP 

    它将堆栈顶部的数据字删除到指定地址。它可以实现为:

    //transfer the content of  SP (i.e, at top most data) 
    //into specified memory location                   
    (memory address) <-- SP
    
    //increment SP by 1
    SP <-- SP + 1 

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

    SUB 

    该指令仅包含没有地址字段的操作码。它从堆栈中弹出两个顶部数据,减去数据,然后将结果推入顶部的堆栈中。

    PDP-11,Intel的8085和HP 3000是堆叠组织计算机的一些示例。

    基于堆栈的CPU组织的优势–

    • 高效计算复杂的算术表达式。
    • 指令的执行速度很快,因为操作数数据存储在连续的存储单元中。
    • 指令长度短,因为它们没有地址字段。

    基于堆栈的CPU组织的缺点–

    • 程序的大小增加。

    注意:基于堆栈的CPU组织使用零地址指令。