问题描述: PUSH AX PUSH BX PUSH CX POP CX POP AX POP BX 为什么结果是AX和BX得内容互换 1个回答 分类:综合 2014-12-15 问题解答: 我来补答 你可以把push指令看作一个源操作数,把pop看作目的操作数.栈空间是由高地址到低地址生长的,push AX,push BX,push CX这连续的三个指令使得AX、BX、CX的值(注意是值,不是寄存器本身)在栈中由高地址向低地址依次排列.pop的操作数为目的操作数,当pop CX,pop AX,pop BX时,依次将栈顶数据弹出到CX、AX、BX寄存器(注意这里是寄存器).连续的三个push使得栈顶存放的数据为原CX的值,故弹出到CX寄存器,值不变;弹出原CX的值以后,栈顶变为原BX的值,此时弹出到AX寄存器,AX的内容变为原BX的值;弹出两组数据后,栈顶只剩下原AX的值,此时弹出到BX寄存器,BX的内容变为原AX的值.故CX不变,仅完成了AX和BX内容交换. 展开全文阅读