鱼C论坛

 找回密码
 立即注册
查看: 3024|回复: 6

汇编关于堆栈的几个问题,请教了,俺是新手没弄明白

[复制链接]
发表于 2011-7-29 11:07:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1、源程序中设了stack segment 段,ss:sp也赋值了,可link目标文件时,最后总有一句:no stack segment ,这是什么意思。

2、源程序中定义了stack segment
                                              db 16 dup(0)
                              stack end
       但debug 该程序时,单步执行,当执行完
                                                    mov ax,stack
                                                    mov ss,ax
                                                    mov sp,16
       d ss:0段,内容并不一定是00,00,00,00,00,00,00,00-00,00,00,00,00,00,00,00。有时会有非0值
       为什么?

3、子程序中如果有push,pop命令,调用时,其堆栈地址是怎么来的,有的源程序中并没有定义ss啊。

俺刚来学习,请各位高手帮帮哦,谢谢!!!!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-29 13:28:26 | 显示全部楼层
我是新手不知道啊
:'{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-29 14:51:37 | 显示全部楼层
本帖最后由 chao_prince 于 2011-7-29 14:51 编辑

首先,第一个..我也搞不明白..
其次,第二个..这个涉及到后面的知识,是有关中断的内容..用来保护现场,暂时存放寄存器里面的内容的.
第三个问题..如果你没有显式定义栈空间..系统会自己给你分配一个空间用作栈..
以上,,希望对你有帮助..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-29 16:07:59 | 显示全部楼层
1、对no stack segment你无视它就行了,反正能通过编译,还有可能你没写assume ss:stack

2、你只是对指针进行赋值,没有对栈段写数据,栈段里当然保留了原先的数据

3、一般来讲,没有堆栈段定义的程序,DOS回自动给你分配一小块的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-29 22:36:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-29 22:37:09 | 显示全部楼层
chao_prince 发表于 2011-7-29 14:51
首先,第一个..我也搞不明白..
其次,第二个..这个涉及到后面的知识,是有关中断的内容..用来保护 ...

谢谢各位的帮助有启示

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-29 22:37:46 | 显示全部楼层
chao_prince 发表于 2011-7-29 14:51
首先,第一个..我也搞不明白..
其次,第二个..这个涉及到后面的知识,是有关中断的内容..用来保护 ...

谢谢哦!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 00:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表