10.6对栈进行push和pop

      数据在存储时是从内存的下层(大的地址编号)逐渐往上层(小的地址编号)累积,读出时则是按照从上往下的顺序进行(图10-3)的。

 

       栈是存储临时数据的区域,它的特点是通过 push 指令和 pop指令进行数据的存储和读出。往栈中存储数据称为“人栈”,从栈中读出数据称为“出栈”。32位x86系列的CPU中,进行1次push或pop,即可处理 32 位(4 字节)的数据。

      push 指令和 pop 指令中只有一个操作数。该操作数表示的是“push的是什么及 pop 的是什么”,而不需要指定“对哪一个地址编号的内存进行 push 或 pop”。这是因为,对栈进行读写的内存地址是由 esp 寄存器(栈指针)进行管理的。push 指令和 pop 指令运行后,esp寄存器的值会自动进行更新(push 指令是 -4,pop 命令是 +4),因而程序员就没有必要指定内存地址了。

posted @ 2023-02-14 20:00  原魏薯片  阅读(98)  评论(0编辑  收藏  举报