汇编语言pushf和popf

pushf:指令将标志寄存器的内容压入堆栈,同时栈顶指针SP减2,这条指令可用来保存全部标志位。
popf:指令将栈顶字单元内容送标志寄存器,同时栈顶指针SP加2。

格式

pushf
popf

这两条指令后面都不加东西,默认的操作对象是:所有的标志寄存器。
练习
下面的程序执行后:(ax)=?

 mov ax,0
 push ax
 popf
 mov ax,0fff0h
 add ax,0010h
 pushf
 
 pop ax
 and al,11000101B
 and ah,00001000B

PUSH和POP是把一个字入栈、出栈
比如:

PUSH AX ;AX入栈
POP AX ;弹出到AX

而PUSHF和POPF是把标志寄存器入栈、出栈
比如:

PUSHF ;标志寄存器入栈
POPF  ;弹出到标志寄存器

如果调用子程序时需要保存标志寄存器,就用PUSHF和POPF
一般中断服务子程序用的多些。
总结

标志	值为1的标记	值为0的标记
of	   OV	          NV
sf	   NG	          PL
zf	   ZR	          NZ
pf	   PE	          PO
cf	   CY	          NC
df	   DN	          UP

发布日期:

所属分类: 编程 标签:  


没有相关文章!