社区
汇编语言
帖子详情
设置栈段为什么要关中断?
yebo_kmp
2006-04-28 10:47:22
有这样一段代码:
cli
mov ss,#0
mov sp,#0x6c00
sti
为什么要关中断呢?我觉得即使不关中断,当发生中断的时候,返回地址也能正确的设置,并且找回来
的。并没有由于设置栈而破坏返回地址啊?
哪位高手能给我一个详细的解释啊,小弟不胜感谢。十分谢谢!
...全文
224
3
打赏
收藏
设置栈段为什么要关中断?
有这样一段代码: cli mov ss,#0 mov sp,#0x6c00 sti 为什么要关中断呢?我觉得即使不关中断,当发生中断的时候,返回地址也能正确的设置,并且找回来 的。并没有由于设置栈而破坏返回地址啊? 哪位高手能给我一个详细的解释啊,小弟不胜感谢。十分谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Leomaxking
2006-05-02
打赏
举报
回复
cs:F000 ip:FFF0其余寄存器都为0
yebo_kmp
2006-04-29
打赏
举报
回复
很感谢楼上的 回答,使我受益匪浅,不过我 还有一个 问题:当cpu刚上电时,它的各个寄存器的值是什么啊?是随机的?还是0,或者其他啊?谢谢,哪位高手给我指点一下啊?thanks.
zara
2006-04-29
打赏
举报
回复
堆栈是由 SS:SP 来指定的, 如果在只设置了 SS 后发生了个硬件中断, 比如是 int08 实时时钟中断, 那么 SS 是新的, 而 SP 是原来的, 这样组合的 SS:SP 就可能指向不确定空间, 甚至是危险的地方造成对那里数据的破坏, 导致不可预测的后果. 所以在设置新的堆栈时, 一般不能发生中断, 通常就暂时用 cli 指令禁止. 不过, 好像有种说法是现在的 cpu 在这方面有自己的保护的, 用户程序可以不需要 cli 的, 不太确切, 有兴趣的话, 楼主可以自己找下来看看的
什么是中断,为什么要用中断?
那么,在计算机系统中,我们为什么需要“阻隔、停顿和断开”呢? <br />举个日常生活中的例子,比如说我正在厨房用煤气烧一壶水,这样就只能守在厨房里,苦苦等着水开——如果水溢出来浇灭了煤气,有可能就要...
什么是软中断?
之所以综上可以知道内核维护了一个*struct softirq_action类型的软中断接口数组,而软中断的状态则是由前面的 * irq_cpustat_t 类型的数组管理,由定义可以知道状态是和CPU关联的,表示某一个CPU上的软中断状态。...
关调度与
关中断
关调度与
关中断
关中断
与关调度是两种进入临界区的方式,它们有各自的使用环境。 最近在研究 ucos-III 的源代码时发现 ucos-III 中有对临界区的优化,以关调度来代替
关中断
的方式工作。系统可以在特定的情况下用关...
中断和中断处理流程
1. 中断概念 ...软件中断则通常作为CPU指令集中的一个指令,以可编程的方式直接指示这种上下文切换,并将处理导向一段中断处理代码。中断在计算机多任务处理,尤其是实时系统中尤为有用。这样的系统
RT-Thread学习笔记(15):中断管理
目录什么是中断???中断介绍中断相关名词中断管理的运作机制中断延迟中断处理过程中断前导程序用户中断服务程序中断后续程序中断栈 什么是中断??? 当 CPU 正在处理内部数据时,外界发生了紧急情况,要求 CPU ...
汇编语言
21,459
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章