. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  入栈PUSH疑惑  [待解决] 回复[ 8次 ]   点击[ 506次 ]  
chenjianan
[帖 主]   [ 发表时间:2010-11-24 19:16 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-22 23:36
不是说PUSH是SP-2吗?那10000H:1000fH这段看做栈空间 ss:1000 SP:000Eh就好拉那为什么还要SP+2 SP:10H
avantasia
[第1楼]   [ 回复时间:2010-11-24 22:30 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-10-17 22:33
栈空的时候,SP:0010H,PUSH后,SP:000EH
chenjianan
[第2楼]   [ 回复时间:2010-11-25 00:28 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-22 23:36
不对啊,,书上那3。10和3。11图文不和你说的一样
s5748035
[第3楼]   [ 回复时间:2010-11-28 16:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-11-25 22:06
仔细看看书上说栈为空的时候,SS:SP指向哪里的你就明白了
zyydoo
[第4楼]   [ 回复时间:2010-12-21 13:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-12-21 13:48
因为是这样的
PUSH 的时候是先读取SP值再写数据,即SP+2后寻找到栈底单元再写数据
lhk3355
[第5楼]   [ 回复时间:2011-07-30 17:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-17 23:03
棧段 貌似往瓶子装东西  不过刻度是反着的
vanpeisi
[第6楼]   [ 回复时间:2011-08-16 17:32 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-16 11:11
最核心的答案是:在push操作的时候,首先修改sp的值,然后再存数据
yipianyipian
[第7楼]   [ 回复时间:2011-08-21 22:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-21 21:07
楼上正解,
PUSH执行的时候,是每次移动一个字单元,即图中的两格,首次执行时,是要先SP-2的,如果SP=000E,则首次执行时,栈顶地址为1000DH……
tbag2011
[第8楼]   [ 回复时间:2011-10-04 13:01 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-09-18 15:25
栈空是这样理解的:最后一个元素从栈中出栈。你将10000H:1000fH这段看做栈空间,则最后一个字元素所使用的内存单元为1000E和1000F,出栈之后sp自动+2,所以开始我们得令SP=0010
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved