. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->外中断
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于中断程序中的栈  [待解决] 回复[ 8次 ]   点击[ 730次 ]  
yiyepianzhou
[帖 主]   [ 发表时间:2008-05-06 12:43 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2008-04-22 20:01
编写一个中断程序要将用到的寄存器入栈,一个程序调用这个中断时,如果程序中没有开辟栈空间,那么中断程序中的栈是哪里来的呢?
wjw3072003
[第1楼]   [ 回复时间:2008-05-06 19:57 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-03-14 16:22
我支持楼主!这个问题我也问过好多人,没人回答过我!高手来讲下子啊
duckgaga
[第2楼]   [ 回复时间:2008-05-06 23:33 ]   [引用]   [回复]   [ top ] 
荣誉值:44
信誉值:0
注册日期:2008-04-11 13:33
操作系统也是一个程序,是一个装载程序,它自己也有栈,当在它上面运行的程序没有自己设置栈时,就会默认使用系统提供的栈。
limitasm
[第3楼]   [ 回复时间:2008-06-03 08:54 ]   [引用]   [回复]   [ top ] 
荣誉值:9
信誉值:0
注册日期:2008-04-12 14:46
同意楼上观点
272003327
[第4楼]   [ 回复时间:2009-01-11 14:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-09-29 21:55
我也感到疑惑
qiangzi
[第5楼]   [ 回复时间:2010-02-05 17:10 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:6
注册日期:2010-01-07 10:37
如果程序中没有定义栈,系统会自动分配的,在windows系统下是不会出现错误的,但是在其他系统里面,比如单片机编程时,如果不事先定义,就可能会侵占到其他有用空间,造成数据的丢失!
ly153870727
[第6楼]   [ 回复时间:2012-03-11 17:01 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-03-09 14:40
我们写的程序都是在os的管理下运行的,当我们没有定义栈的时候 ,操作系统会自动给我们分配栈空。如果没有操作系统的话,像单片机,dsp之类的裸机,没有定义栈,程序是会出问题的,可能跑飞了,也可能运行不了。
jfztaq
[第7楼]   [ 回复时间:2012-10-07 19:05 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-20 21:27
当然是系统自动分配的栈空间了
yyxiansen
[第8楼]   [ 回复时间:2013-01-17 22:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-12-14 17:39
cs段就是系统栈,初始化sp=0,入栈后,sp-2 到达cs段的末尾 ,这就是系统分配的栈吧
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved