编辑: AA003 2019-05-21

00 00

00 00

00 00

00 00

00 00

00 00 偏移地址[DI] 3.3.1 数据传送类指令 ? www.xju.edu.cn 2) 堆栈操作指令PUSH和POP 堆栈操作的原则: ? 存取每一次必须是一个字,从高地址向低地址方向增长 ? 堆栈指令中的操作数只能是寄存器或存储器 ? 堆栈段在内存中的位置由SS决定,堆栈指针SP总指向栈顶,SP 的内容等于当前栈顶的偏移地址 ? 先进后出 推入堆栈------PUSH;

弹出堆栈-------POP. 堆栈是内存中的一个特殊区域,用以存放寄存器或存储器中暂时 不用又必须保存的数据.它在内存中所处的段称为堆栈段,其段地 址存放在堆栈段寄存器SS中. 堆栈:内存中一个特定的区域,用以存放寄存器或存储器中暂时不 用又必须保存的数据. 堆栈段:堆栈在内存中所处的段.其地址在SS中. 栈顶:当前可用堆栈操作指令进行数据交换的存储单元. 3.3.1 数据传送类指令 ? www.xju.edu.cn 存储器 SS 低地址 SP 高地址 堆栈增 长方向 堆栈段 栈顶 堆栈示意图 主程序 断点1 断点2 子程序1 子程序2 执行子程序2子程序调用示意图 3.3.1 数据传送类指令 ? www.xju.edu.cn ? 压栈指令 PUSH 格式: PUSH src ? 出栈指令 POP 格式: POP dest 注:操作数是 ? 寄存器(数据寄存器、地址指针和变址寄存器) ? 段寄存器(CS除外) ? 存储单元 压栈指令 PUSH ? 指令执行过程: (SP)←(SP)-2 (SP)-1←操作数高字节 (SP)-2←操作数低字节 出栈指令POP ? 指令执行过程: (SP) 操作数低字节 (SP)+1 操作数高字节 (SP)←(SP)+2 3.3.1 数据传送类指令 ? www.xju.edu.cn SP-2=11FEH 12H 34H 1200H 堆栈段12H 34H AX 入栈后 1200H 堆栈段入栈前 设AX=1234H,SP=1200H 执行 PUSH AX 指令后堆栈区的状态: 3.3.1 数据传送类指令 ? www.xju.edu.cn 执行 POP AX 堆栈区的状态: 12H 34H 11FEH 堆栈段代码段POP

12 34 AX ........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题