| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5216 人关注过本帖
标题:求助:王爽汇编中关于堆栈的问题
只看楼主 加入收藏
wuyongquan
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-8-25
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:4 
求助:王爽汇编中关于堆栈的问题
assume cs:code,ss:stack
stack segment
db 16 dup (20h)
stack ends
code segment
start:mov ax,stack
        mov ss,ax
        mov sp,0010h
        mov ax,'ab'
        push ax
        pop bx
        mov ax,c00h
        int 21h
code ends
end start
代码是这样,用debug单步调试时,对堆栈中的数据进行PUSH和POP操作后,堆栈中的数据就消失了。按说堆栈中的数据应该只是被 ‘复制’ 而已吧   求高手帮我看看吧。郁闷了好多天了也想不明白
搜索更多相关主题的帖子: start 
2014-08-27 04:32
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:5 
debug是“模拟”汇编语言的环境,并不是真正的汇编语言环境,debug本身也要使用栈操作。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2014-08-27 08:05
wuyongquan
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-8-25
收藏
得分:0 
意思就是说真正的汇编语言环境中,堆栈中的数据在进行PUSH和POP操作后不会消失,是这样理解吗
2014-08-27 21:12
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:5 
以下是引用wuyongquan在2014-8-27 21:12:08的发言:

意思就是说真正的汇编语言环境中,堆栈中的数据在进行PUSH和POP操作后不会消失,是这样理解吗

我是的样理解的:在出栈操作后,仅仅是栈指针(栈地址寄存器)改变了,堆栈里的数据并不会改变,除非又进行了入栈的操作。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2014-08-29 07:26
远离的人
Rank: 1
等 级:新手上路
威 望:1
帖 子:10
专家分:0
注 册:2013-12-18
收藏
得分:0 
真正的汇编语言环境中,堆栈中的数据在进行PUSH和POP操作后不会消失,楼主遇到的问题是因为在Debug中进行调试时会触发中断程序,而中断程序触发后会利用栈来保存一些信息,比如当前指令地址CS:IP的值,还有标志器的值等。
2014-10-08 16:26
快速回复:求助:王爽汇编中关于堆栈的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058717 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved