武冈网站建设多少钱,神鹰网站建设公司,网站空间商排行榜,动漫设计与游戏制作学什么文章目录 栈结构栈操作栈的小结 栈结构
栈是一种只能在一端插入或删除的数据结构#xff1b;栈有两个基本的操作#xff1a;入栈和出栈#xff1b; 入栈#xff1a;将一个新的元素放到栈顶#xff1b;出栈#xff1a;从栈顶取出一个元素#xff1b; 栈的操作规则#… 文章目录 栈结构栈操作栈的小结 栈结构
栈是一种只能在一端插入或删除的数据结构栈有两个基本的操作入栈和出栈 入栈将一个新的元素放到栈顶出栈从栈顶取出一个元素 栈的操作规则FILO先进后出CPU提供的栈机制 8086 CPU提供相关的指令支持用栈的方式访问内存空间基于8086 CPU的编程可以将一段内存当作栈来使用 push入栈与pop出栈指令 push ax: 将ax中的数据送入栈中pop ax: 从栈顶取出数据送入ax以字为单位对栈进行操作 问题 1、CPU是如何知道一段内存空间被当作栈使用 2、执行push与pop的时候如何知道哪个单元是栈顶单元 回答 8086CPU中有两个与栈相关的寄存器 栈段寄存器SS 存放栈顶的段地址 栈顶指针寄存器SP存放栈顶的偏移地址 任何时刻SS:SP 都指向栈顶元素。 栈操作
mov ax, 1000H ;栈顶的段地址存放至一般寄存器ax中
mov ss, ax ;将栈段地址传给ss寄存器
mov sp 0010H ;将栈顶偏移地址存放至SP寄存器
mov ax, 001AH ;一般寄存器ax存放一个字 001AH
mov bx, 001BH ;一般寄存器bx存放一个字 001BH
push ax ;将寄存器ax的值压入栈
push bx; 将寄存器bx的值压入栈; 出栈操作
pop ax
pop bx栈的小结
1、push、pop 实质上是一种内存传送指令可以在寄存器和内存之间传送数据与mov指令不同的是push和pop指令访问的内存单元的地址不是在指令中给出的而是由SS:SP指出的 2、执行push和pop指令时SP中的内容自动改变 3、8086提供的CPU栈操作机制
SS中存放栈顶段地址SP存放栈顶偏移地址入栈和出栈指令根据SS:SP指示的地址按照栈的方式访问内存单元push指令的执行步骤 1、SP SP - 22、 向SS:SP 指向的字单元中送入数据 pop 指令的执行步骤 从SS:SP 指向的字单元中读取数据SP SP 2