怎么理解pushf popf

来源:百度知道 编辑:UC知道 时间:2024/07/04 10:10:17
mov ax,0
push ax,ax值不变吧,只是复制吧

popf;把0弹出来了?
add ax,0010h;对真正的ax操作?
pushf;把加了之后的值又压进去?
pop ax;又弹出来这个值?ax变了么?

如果这样,PUSHF 和PUSH有什么区别??
POPF和POP有什么区别?
一般什么是=时候用?

PUSH和POP是把一个字入栈、出栈
比如:
PUSH AX ;AX入栈
POP AX ;弹出到AX
而PUSHF和POPF是把标志寄存器入栈、出栈
比如:
PUSHF ;标志寄存器入栈
POPF ;弹出到标志寄存器
如果调用子程序时需要保存标志寄存器,就用PUSHF和POPF
一般中断服务子程序用的多些。

mov ax,0
push ax,ax值不变
popf;把标志寄存器psw弹出来
add ax,0010h;对ax寄存器操作
pushf;把加了之后的值又压进去?这要看情况,看你用的什么命令了
pop ax;弹出来原来入栈的值?ax的值被覆盖成原来入栈的值

PUSHF 和PUSH有什么区别?
pushf是把标志寄存器psw入栈,后面不要带参数(就是寄存器);而push只是把push后接的那个寄存器入栈,而且push后面的寄存器至少要是16位的寄存器

PUSH和POP是把一个字入栈、出栈
比如:
PUSH AX ;AX入栈
POP AX ;弹出到AX

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

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