+ -
当前位置:首页 → 问答吧 → 进栈出栈

进栈出栈

时间:2011-12-06

来源:互联网

在王爽的《汇编语言程序设计》一书的58页中,有关于进栈出栈的阐述我发现有点问题。代码如下:
http://hi.csdn.net/attachment/201112/6/10192489_13231311542479.jpg

执行过程如下:

怎么执行进栈出栈之后,ax,cx的值都变了呢?
进栈出栈应该不能改变寄存器的值啊,这是不是书中的一个错误呢?

作者: jidijidi   发布时间: 2011-12-06

进栈,当然是不会改变寄存器内容的;出栈,如果是出到了寄存器里,寄存器的内容当然就会变为刚才栈顶的内容了,就象 pop ax 这指令,执行完后,ax 里就是刚才栈顶的内容。

作者: zara   发布时间: 2011-12-06

引用楼主 jidijidi 的回复:
在王爽的《汇编语言程序设计》一书的58页中,有关于进栈出栈的阐述我发现有点问题。代码如下:
http://hi.csdn.net/attachment/201112/6/10192489_13231311542479.jpg

执行过程如下:

怎么执行进栈出栈之后,ax,cx的值都变了呢?
进栈出栈应该不能改变寄存器的值啊,这是不是书中的一个错误呢?

push ax就是把ax中的值复制到栈上
pop ax就是把栈上的数据复制到ax中。

作者: gsy999   发布时间: 2011-12-06