第2章 进栈指令PUSH PUSH PUSH r16/m16/seg SP+SP-2 :SS: [SP]+r16/m16/segS[ s0H 代 0000 PUSH AX 码 的编吗 0200H 8000H push ax 堆 P push [2000h AX 0543 栈 前 80200H BBH 栈顶 出E AAH 段 PUSH AX指令执行过程
第 2 章 进栈指令PUSH push ax push [2000h] PUSH r16/m16/seg ;SP←SP-2 ;SS:[SP]←r16/m16/seg PUSH
第2章 出栈指令POP POP POP r16/m16/seg r16/m16/seg←Ss:SP SP←SP+2 800H 代 POP AX 的编|00010 码 0200H 段 8000H pop ax SP 堆 当前 pop [2000h1 80200 Dx???2 AAH 栈顶 BBH 80202H CCH 出E DDH 段 指令执行前 POP DX指令执行过程
第 2 章 出栈指令POP pop ax pop [2000h] POP r16/m16/seg ;r16/m16/seg←SS:[SP] ;SP←SP+2 POP
第2章 堆栈的特点 >堆栈操作的单位是字,进栈和出栈只对字量 字量数据从栈顶压入和弹出时,都是低地址 字节送低字节,高地址字节送高字节 堆栈操作遵循先进后出原则,但可用存储器 寻址方式随机存取堆栈中的数据 >堆栈常用来 临时存放数据 例题2.11 ■传递参数 保存和恢复寄存器
第 2 章 堆栈的特点 ➢ 堆栈操作的单位是字,进栈和出栈只对字量 ➢ 字量数据从栈顶压入和弹出时,都是低地址 字节送低字节,高地址字节送高字节 ➢ 堆栈操作遵循先进后出原则,但可用存储器 寻址方式随机存取堆栈中的数据 ➢ 堆栈常用来 ◼ 临时存放数据 ◼ 传递参数 ◼ 保存和恢复寄存器 例题2.11
第2章 23.3标志寄存器传送指令 >标志寄存器传送指令用来传送标 志寄存器 FLAGS的内容,方便进 行对各个标志位的直接操作 >有2对4条指令 ■低8位传送:LAHF和SAHF 16位传送: PUSHF和PoPF
第 2 章 2.3.3 标志寄存器传送指令 ➢标志寄存器传送指令用来传送标 志寄存器FLAGS的内容,方便进 行对各个标志位的直接操作 ➢有2对4条指令 ◼低8位传送:LAHF和SAHF ◼ 16位传送:PUSHF和POPF
第2章 标志低字节进出AH指令 LAHF SAHF ;AH← FLAGS的低字节 ; FLAGS的低字节←AH >LAHF指令将标志寄存器>SAH将A寄存器内容 的低字节送寄存器AH 送 FLAGS的低字节 >SF/F/AF/PF/CF状态标>用A的第7/6/4/2/0位 志位分别送入A的第相应设置SF/ZF/AF/ 7/6/4/20位,而AH的PCF标志 第5/3/1位任意
标志低字节进出AH指令 LAHF ;AH←FLAGS的低字节 ➢ LAHF指令将标志寄存器 的低字节送寄存器AH ➢ SF/ZF/AF/PF/CF状态标 志 位分 别送入AH 的 第 7/6/4/2/0位,而AH 的 第5/3/1位任意 SAHF ;FLAGS的低字节←AH ➢ SAHF将AH寄存器内容 送FLAGS的低字节 ➢ 用AH的第7/6/4/2/0位 相应设置 SF/ZF/AF/ PF/CF标志 第 2 章