下载此文档

实验六-堆栈.pdf


文档分类:IT计算机 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
?堆栈的工作原理堆栈是一种用来存储数据的逻辑数据结构,它按照先进后出的方式工作。在8086系统中,堆栈是用内存中的某一段连续的地址空间实现的。在8086系统中,堆栈是在内存中倒挂生长的。 0:0 FFFF:FFFF 堆栈的图示 SS SP 0000H (栈顶) 存储器高地址堆栈段在8086系统中,堆栈是在内存中倒挂生长的。堆栈 40080H 堆栈空间的位置和大小由栈段寄存器SS和堆栈指针寄存器SP确定。SS 指向栈段的起始地址,SP指出栈顶与栈底的距离。 SS= 4008 H SP= 0020 H 40080H + 0020 H 400A0 H 400A0H 栈底 PUSH POP 接口技术堆栈所处理的基本数据单位是字,不能进行字节或是双字操作。堆栈中的数据按低字节放偶地址,高字节放奇地址存放 4 堆栈的操作?堆栈只有两种基本操作:进栈和出栈, 对应两条指令PUSH和POP PUSH ;进栈指令先使堆栈指针SP减2,然后把一个字操作数存入堆栈顶部 POP ;出栈指令把栈顶的一个字传送至指定的目的操作数, 然后堆栈指针SP加2 5 入栈指令PUSH 格式: PUSH REG16;16位寄存器内容压入堆栈 PUSH MEM16;16位地址单元内容压入堆栈 PUSH SEGREG;段寄存器内容压入堆栈说明: ?8086?80286总将16位数据压栈。?任何段寄存器内容都可压入堆栈。?当压入16位数据时,操作顺序为:SP-1, 高位字节→(SP-1),低位字节→(SP-2), 执行指令后SP = SP-2。演示 7 出栈指令POP 格式: POP REG16; 栈顶内容弹出至16位寄存器 POP MEM16; 栈顶内容弹出至16位寻址方式存储单元 POP SEGREG; 栈顶内容弹出至CS以外的任何段寄存器说明: ?立即数不能作POP指令的操作数。?段寄存器CS不能作POP指令的操作数?POP指令执行后,栈顶指针SP加2 演示 9 堆栈的特点?堆栈操作的单位是字,进栈和出栈只对字量?字量数据从栈顶压入和弹出时,都是低地址字节送低字节,高地址字节送高字节?堆栈操作遵循先进后出原则,但可用存储器寻址方式随机存取堆栈中的数据?堆栈常用来–临时存放数据–传递参数–保存和恢复寄存器现场保护恢复 delay proc push ax ;进入子程序后 push bx push ds ... pop ds ;返回主程序前 pop bx pop ax delay endp 11 思考: 若SS的内容为2000H,SP=0140H,如果在堆栈中存入5个数据,SS和SP的内容各是多少? 如果从堆栈中取出2个数据,SS和SP的内容又是多少? SS=2000H SP=0136H SS=2000H SP=013AH 12 课堂练****一、判断(请仔细判别下列指令是否有错;如有,请指出错误之处) 1、MOV DS,SS () 2、MOV AX,ES () 3、MOV CL,BP () 4、MOV DS,[DI]() 5、PUSH IP ( ) 6、POP 7000H () 7、ADD BX,0FH() 8、ADD DS,0FH ()

实验六-堆栈 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人yinjinsen
  • 文件大小0 KB
  • 时间2016-04-01