鱼C论坛

 找回密码
 立即注册
查看: 2634|回复: 19

栈空间由谁分配

[复制链接]
发表于 2013-3-6 17:03:59 | 显示全部楼层 |阅读模式
5鱼币
今天继续学校小甲鱼的汇编视频,第六章第二节 书上说到这样一句话,栈空间应该由系统分配,思索了一下产生了一点疑问,
这个系统指的是谁,windows?dos?汇编语言不是直接与硬件打交道么,中间怎么会隔着个第三者--系统类?!
问题或许略弱智,还望各位大神赐教。。。

最佳答案

查看完整内容

呵呵,当然有第三者。CPU指令集,在主板上固化在芯片里,算是个系统。每个计算机没装 WINDOWS的时候是带系统的那就是这个.:P
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-6 17:04:00 | 显示全部楼层
呵呵,当然有第三者。CPU指令集,在主板上固化在芯片里,算是个系统。每个计算机没装 WINDOWS的时候是带系统的那就是这个.:P
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-3-6 17:05:12 | 显示全部楼层
由我先自顶,求大神抽空解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-6 17:34:40 | 显示全部楼层
当然是windows,小甲鱼不是说过,windows是大骗子,让你误以为直接和硬件打交道,实际只是模拟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-3-6 18:29:27 | 显示全部楼层
我又凌乱了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-3-6 21:05:09 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-6 21:12:39 | 显示全部楼层
在操作系统上运行的程序都由操作系统管理,操作系统让他执行了,才能执行指令。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-6 21:35:07 | 显示全部楼层
你也在听汇编啊  我昨天 一口气全听完了  
对了 , 你有没有 认真的听 连DOS  和 windows
都分不清楚啊  
对不起   可能是说过分啦  
但是 我肯定你没有听清楚
是不是老是听 小甲鱼 在说 苍井空  想她呢?
系统当然是 windows 啦   DOS 是什么  
算了还是你自己查查吧   那样你理解的会很深刻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-6 21:38:46 | 显示全部楼层
你们有没有想过 栈空间到底是干什么的  在软件里   程序里  游戏里  起到什么作用?
可有知道的?  好像 小甲鱼 没有说啊
可有知道的 大哥 大姐 们  说说 呗      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-6 22:33:15 | 显示全部楼层
这个 有系统的事吗 那要没系统呢 主要还是编译器吧 编译器 决定改不给你空间
编译器给你到时生成程序时 程序会占上空间
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-3-6 22:48:30 | 显示全部楼层
wanglihong19877 发表于 2013-3-6 21:35
你也在听汇编啊  我昨天 一口气全听完了  
对了 , 你有没有 认真的听 连DOS  和 windows
都分不清楚啊   ...

dos也是系统啊,那以前没windows的时候请问是谁来分配
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-6 23:14:27 | 显示全部楼层
不要在深究了~呵呵 以前还没有电脑这种东西呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-6 23:26:24 | 显示全部楼层
wanglihong19877 发表于 2013-3-6 21:35
你也在听汇编啊  我昨天 一口气全听完了  
对了 , 你有没有 认真的听 连DOS  和 windows
都分不清楚啊   ...

过目不忘啊 一口气看了 70多级~~我要是有你这脑袋~多好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-7 00:13:11 | 显示全部楼层
本帖最后由 堕落づ天使 于 2013-3-7 00:16 编辑

总体来说 是由编译器来生成代码来分配并维护栈的 具体谁分配要看你函数类型了 比如 stdcall是函数被调用者来维护栈的
fastcall则是把前两个参数放在寄存器 被调用的函数来维护的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-7 06:25:34 | 显示全部楼层
程序员设计,然后操作系统分配
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-7 07:33:08 | 显示全部楼层
我是来学习的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-7 08:02:32 | 显示全部楼层
API函数调用时,windows系统自由分配内存。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-7 09:41:37 | 显示全部楼层
wanglihong19877 发表于 2013-3-6 21:38
你们有没有想过 栈空间到底是干什么的  在软件里   程序里  游戏里  起到什么作用?
可有知道的?  好像 小 ...

push和pop指令所对的内存就是栈啊,用来存放临时变量用的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-7 22:09:55 | 显示全部楼层
你可以这样认为吧,在32位下,一个平坦4g空间,中间有这么连续的2M(好像默认2M,就不纠结了)字节空间,只供push和pop栈指令使用,仅此而已。而你可能想说,那这个空间别的指令就用不到了?因为系统有规定,所以聪明的编译器在编译时是不会主动去侵犯这段空间的,这就完事啦。其实,也就是操作方式不同而已,它终究跟别的内存没啥区别。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-15 11:15:42 | 显示全部楼层
你觉得很难吗   不是我 脑袋好用  只是我们的学习方法不一样吧   
有时间可以在一起研究一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-17 22:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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