出栈指令POP>格式:POPOPD>功能:将栈顶的一个字数据送至OPD指明的寄存器、段寄存器(CS除外)或存储器中;修改指针:(SP)+2一→SP。>POP指令在使用时应该注意:自的操作数只能是16位,而不能是8位的立即数、CS不能作为目的操作数
出栈指令POP ➢ 格式:POPOPD ➢ 功能:将栈顶的一个字数据送至OPD指明的 寄存器、段寄存器(CS除外)或存储器中;修 改指针:(SP)+2→SP。 ➢ POP指令在使用时应该注意: ◼ 目的操作数只能是16位,而不能是8位的。 ◼ 立即数、CS不能作为目的操作数
POP指令的例子例:假设在指令执行前,(SP)=0FFEH,(BX)-2004H并且堆栈段栈顶(OFFEH)单元内存放34H,(OFFFH)单元内存放12H。试分析POPBX指令的执行结果堆栈段34HOFFEHSPBX =1234H12HOFFFHSP1000H存储器
POP指令的例子 例:假设在指令执行前,(SP)=0FFEH,(BX)=2004H, 并且堆栈段栈顶(0FFEH)单元内存放34H,(0FFFH)单 元内存放12H。试分析POP BX指令的执行结果。 SP 堆栈段 存储器 1000H 0FFFH SP 0FFEH BX ① ② 12H 34H =1234H
2.标志寄存器传送指令>LAHF指令:取标志寄存器指令。将标志寄存器FR的低8位传送到AH中。>SAHF指令:设置标志寄存器指令。将AH的内容传送到标志寄存器FR的低8位。>PUSHF指令:将标志寄存器FR的值压入堆栈。》>POPF指令:从堆栈中弹出一个字到标志寄存器FR中
2.标志寄存器传送指令 ➢ LAHF指令:取标志寄存器指令。将标志寄 存器FR的低8位传送到AH中。 ➢ SAHF指令:设置标志寄存器指令。将AH的 内容传送到标志寄存器FR的低8位。 ➢ PUSHF指令:将标志寄存器FR的值压入堆 栈。 ➢ POPF指令:从堆栈中弹出一个字到标志寄 存器FR中
3.自标地址传送指令包括:■取偏移地址指令LEA■传送偏移地址及数据段首址指令LDS■传送偏移地址及附加段首址指令LES
3.目标地址传送指令 包括: ◼ 取偏移地址指令LEA ◼ 传送偏移地址及数据段首址指令LDS ◼ 传送偏移地址及附加段首址指令LES
1)取偏移地址指令LEA>格式:LEA OPD, OPS功能:将源操作数的偏移地址送到目的操作数,该指令不影响标志位,源操作数必须是存储器操作数,自的操作数必须是16位通用寄存器LEASI,TABLE;TABLE为存诸器操作数的符号地址LEAAX,[SII;该指令等效于MOVAX,SI指令,与MOVAX,[SI]指令的效果不同,注意区别
1)取偏移地址指令LEA ➢ 格式:LEA OPD,OPS ➢ 功能:将源操作数的偏移地址送到目的操作数。 ➢ 该指令不影响标志位,源操作数必须是存储器操作 数,目的操作数必须是16位通用寄存器。 ◼ LEA SI,TABLE;TABLE为存储器操作数的符号地 址 ◼ LEA AX,[SI];该指令等效于MOV AX,SI指令, 与MOV AX,[SI] 指令的效果不同,注意区别