计算机组成原理(修订版) 教学课件 作者 竺士蒙 主编 柳 祎 副主编 13.PPT

计算机组成原理(修订版) 教学课件 作者 竺士蒙 主编 柳 祎 副主编 13.PPT

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、串联堆栈 1.1、堆栈是什么 在计算机中,堆栈常常是一种数据结构。 其数据的访问具有“先进后出”的特点。 由8个寄存器组成的串联堆栈如图所示。 从图中可看出,上述堆栈中只有8个寄存器,所以最多只能压入8个数据,若有第九个数据要入栈,将会丢失信息。因为CPU中的寄存器数目是有限的,因此这种堆栈的容量较小,其突出的优点是访问速度快。 出栈指令为:POP AX 操作数AX是CPU的16位累加器,操作码POP表示出栈操作,即栈顶两个字节的内容弹出送AX。 * 1.串联堆栈 2.存储器堆栈 4.4 堆栈寻址方式 要点 1.2、串联堆栈是什么 通常把CPU内部的寄存器组成一个堆栈,即串联堆栈(或称为寄存器堆栈),数据的进栈或出栈操作也只能在栈顶进行。 串联堆栈由 8个寄存器(R0~R7)构成,其栈顶固定指向R0,栈底固定指向R7。其中每一个寄存器都能保存一个字的数据。 假如我们需要保存CPU累加器的内容,就可进行入栈操作,以后若需要再用这个数据时,又可以通过出栈操作,把数据从堆栈中取回来。 1.3、入栈和出栈 所有的数据传送是在栈顶和某个通用寄存器(累加器)之间进行,也就是说,累加器仅和R0寄存器交换数据。 入栈时,总是先将堆栈中原有的信息下移一个寄存器位置,空出R0寄存器的位置,再将累加器的数据压入R0中。 出栈时,总是先将栈顶寄存器R0中的数据弹出,传送给累加器,再将堆栈中每一个寄存器的数据上移一个寄存器位置,以保证栈顶寄存器R0中存放的总是最后进入堆栈的数据。 图示出了数据入栈的过程。 图a中,入栈前,累加器中的数是A,堆栈为空; 入栈时,把累加器中的数A直接放入R0即可,堆栈内的数据不需要向下移动。 在图(b)中,入栈前累加器中的数是B,R0的内容是A,其它寄存器的内容为空, 入栈时,先要把R0的内容向下移动到R1中,其它寄存器内容不用移动了,再把累加器中的数B放入R0即可。 同样图(c)和图(d)表示把累加器的另外两个数据C和D压进堆栈的情况。 数据从堆栈中取出是一个相反的过程。 在(d)中,最后一次入栈操作后,堆栈保存有A,B,C,D四个数据,最后进入的数据D在堆栈顶部。 此时若要出栈,数据 D从栈顶弹出,放回累加器中,与此同时,所有其他三个数依次向上移动一个寄存器位置,数据C已经在栈顶位置了。 若再要出栈,数据 C从栈顶弹出,放回累加器中,与此同时,所有其他两个数同样依次向上移动一个寄存器位置,数据B已经在栈顶位置了;再出栈也同样处理。 总之,每一次入栈或出栈操作时,堆栈里的剩余数据都有一个向下或向上移动的过程,由于这个原因,这种结构通常称作 “串联堆栈”。当然串联堆栈也是符合数据“先进后出”的特性。 2、存储器堆栈 2.1、存储器堆栈是什么 通常,把内存的一部分用作堆栈,即存储器堆栈,数据的进栈或出栈操作只能在栈顶进行。 在存储器类型的堆栈中,需要一个栈顶指示器,它是CPU中一个专用的寄存器,例如8086微机中是SP寄存器。 栈顶指示器指示的单元,就是堆栈的栈顶。 2.2、进栈和出栈 进栈指令为:PUSH AX 操作数AX是CPU的16位累加器,操作码PUSH表示入栈操作,即把AX的内容入栈保存。 操作过程可以表示成: 1. (AH)→(SP)-1 2. (AL)→(SP)-2 3. (SP)-2→SP 其中(AH)表示累加器AX的高8位内容,(AL)表示累加器AX的低8位内容,(SP)表示栈顶指示器的内容,是一个偏移量,指向栈顶单元。 其中1和2表示先放两个字节的数据,3表示后修改栈顶指示器的值。 注意,这里的一次入栈操作,放了两个字节数据,因此栈顶指示器SP要减2,而不是减1。 进栈操作: 1000H 1020H 内存 栈顶指示器SP 1000H 1001H 累加器 进栈前 0FFEH 1020H 20H 10H 内存 栈顶指示器SP 0FFEH

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档