1.寻址方式定义:指令中关于如何求出操作数有效地址的方法称为寻址方式。
2.堆栈操作指令:堆栈是一块按照“后进先出”原则工作的内存区域。把数据从栈顶存入堆栈中的操作称为入栈(压栈);把数据通过栈顶从堆栈中取出的操作称为出栈(或弹出)。在8086指令系统中,堆栈所在的段就是堆栈段,它可以占用的最大空间是64KB。堆栈段的段地址由SS寄存器指示,堆栈指针寄存器SP始终指示栈顶的偏移地址。入栈向地址低的方向进行,出栈向高地址增加。在8086指令系统中,堆栈操作指令中操作数的类型只能是字(连续的两个字),不能是字节。
3.堆栈指令应用:常用于数据的暂存、交换、子程序的参数传递等。
①进栈指令
格式:PUSH 源操作数
功能:源操作数入栈。
指令执行如下:
(1)SP=(SP)-2 (将原SP的值减2赋值给SP)
(2)SS:SP←源操作数
说明:源操作数可以是寄存器或是内存操作数
②出栈指令
格式:POP 目标操作数
功能:数据出栈,存入目标操作数。
指令执行如下:
(1)目标操作数←(SS:SP)
(2)SP=SP-2 (将原SP的值加2赋值给SP)
说明:目标操作数可以是段寄存器、16位寄存器或内存操作数
当目标操作数是段寄存器时,不能是CS寄存器。
4.例题: