汇编push问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:39:47
请把以下程序的每条指令执行结果帮我解释一下。谢谢
push ax
push ax
shl ax 1
mov dx,ax
pop ax
add ax,dx
add ax,ax
mov dx,ax
pop ax
add ax,dx
最后完成了什么功能,谢谢

指令 注释 其中的ax就是原始的ax值
push ax ;SP-2=>SP,AX入栈.
push ax ;SP-2=>SP,AX入栈. 现在堆栈中有两个ax,
shl ax 1 ;ax*8, “CF,OF,PF,SF,ZF”-----不知道...
mov dx,ax ;ax=>dx
pop ax ;SP当前值=>AX,sp+2.
add ax,dx ;ax+dx=>ax 就相当于是ax+(ax*8)=>ax
add ax,ax ;ax+ax=>ax ax+(ax*8)+ax+(ax*8)=>ax
mov dx,ax ;ax=>dx
pop ax ;SP当前值=>AX,sp+2.
add ax,dx ;ax+dx=>ax ax+ax+(ax*8)+ax+(ax*8)=>ax

我感觉有点摸不着头脑,不知道为什么要提这个问题