首页 > 其他 > 详细

第三章 寄存器(内存访问)其二

时间:2020-05-09 11:47:40      阅读:44      评论:0      收藏:0      [点我收藏+]

3.6  栈

我们研究栈的角度:

栈是一种具有特殊的访问方式的存储空间。它的特殊性就在于,最后进入这个空间的数据,最先出去。

栈有两个基本的操作:入栈和出栈

入栈:将一个新的元素放到栈顶

出栈:从栈顶取出一个元素

 

栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。

栈的操作规则:LIFO(后进先出)

 

3.7  CPU提供的栈机制

现今的CPU中都有栈的设计。

8086CPU提供相关的指令来以栈的方式访问内存空间。

这意味着,我们在基于8086CPU编程的时候,可以将一段内存当作栈来使用。

8086CPU提供入栈和出栈指令:(最基本的)

PUSH(入栈)

POP(出栈)

push  ax:将寄存器ax中的数据送入栈中;

pop   ax: 从栈顶取出数据送入ax。

8086CPU的入栈和出栈操作都是以字为单位进行的。

 

SS:存放当前栈顶的段地址

SP:存放当前栈顶的偏移地址

任意时刻,SS:SP指向栈顶元素。

 

push指令的执行过程

push  ax

1)SP=SP-2;

2)将ax中的内容送入SS:SP指向的内存单元处,SS:SP此时指向新栈顶。

技术分享图片

 

 

在初始状态,栈是空的,此时,SS:SP指向栈空间最高地址单元的下一个单元。

第三章 寄存器(内存访问)其二

原文:https://www.cnblogs.com/fate-/p/12856038.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!