汇编cli(ClearInterrupt,禁止中断、关中断,对应的sti是开中断)

更新时间:2023-05-16 09:38:47 阅读: 评论:0

lck是什么意思啊汇编cli(ClearInterrupt,禁⽌中断、关中断,对应的sti是开中断)
CLI禁⽌中断发⽣,关中断
sgcc
STI允许中断发⽣,开中断
这两个指令只能在内核模式下执⾏,不可以在⽤户模式下执⾏;⽽且在内核模式下执⾏时,应该尽可能快的恢复中断,因为CLI会禁⽤硬件中断,若长时间禁⽌中断会影响其他动作的执⾏(如移动⿏标等等),系统就会变得不稳定。在标志寄存器中中断标志清零的情况下,可以以“int ××”的形式调⽤软中断。
STI(Set Interrupt) 中断标志置1指令 使 IF = 1;
CLI(Clear Interrupt) 中断标志置0指令 使 IF = 0.
它们只影响本指令指定的标志,⽽不影响其他标志位(即STI和CLI只影响IF)。
英文合同范本CLI和STI是⽤来屏蔽中断和恢复中断⽤的,如 设置栈基址SS和偏移地址SP时,需要CLI,因为如果这两条指令被分开了,那么很有可能SS 被修改了,但由于中断,⽽代码跳去其它地⽅执⾏了,SP还没来得及修改,就有可能出错。
CLI可以屏蔽中断, STI恢复中断,于是,两者之间的代码就不会被外部中断打断。所以可以尽量保护代码连续执⾏。但是对于⼀些不允许屏蔽的中断以及异常,代码的运⾏还是会被中断
中断向量是指中断发⽣以后,程序会按照中断类型执⾏不同的中断服务程序,这个中断向量就是这些中断处理函数的⼊⼝地址。
具体为什么叫向量,我认为,中断是有优先级的,程序会按照优先级从⾼到低依次查询,突出⼀个⽅向性,所以叫向量。
osco
程序员可以改变段地址和偏移地址,但是在这个过程中如果需要改变段寄存器SS和SP必须禁⽌中断,当改变完成后再恢复中断(也就是说在cli指令后需要有与其配对的sti指令,否则计算机–最常见的反应就是崩溃)
lost river在对 ss 和sp操作的时候, 如果有中断发⽣,中断的保存现场的操作是将相关寄存器值保存到ss:sp指向的地址.
如果ss 或者sp没有完成赋值操作, 这时候ss:sp指向的地址则是不期望的地⽅. 如果将系统或者其他应⽤的数据覆盖,会导致系统/应⽤崩溃.
⽐⽅说,下⾯这个程序段(没有屏蔽中断):laba
办公用品的英文
verymuch(1) mov ax,100h
(2) mov ss,ax
(3) mov sp,200h
假设在执⾏完指令(2)时产⽣了⼀个计时器中断。这时SS等于100h,但是SP还没有来得及改变。这样就是说堆栈的段地址正确,但偏移地址还是原先堆栈的偏移地址。
下⾯是两条规则:
1)在改变SS:SP之前,必须⽤cli指令屏蔽中断,然后等操作执⾏完⽴即⽤sti指令恢复
残夜2)SS:SP需要设置在空闲的内存地址,不要建⽴在其他的程序(尤其是系统的)代码区
STI(Set Interrupt) 中断标志置1指令 使 IF = 1;
luiCLI(Clear Interrupt) 中断标志置0指令 使 IF = 0.
它们只影响本指令指定的标志,⽽不影响其他标志位(即STI和CLI只影响IF)。
CLI和STI是⽤来屏蔽中断和恢复中断⽤的,如 设置栈基址SS和偏移地址SP时,需要CLI,因为如果这两条指令被分开了,那么很有可能SS 被修改了,但由于中断,⽽代码跳去其它地⽅执⾏了,SP还没来得及修改,就有可能出错。
CLI可以屏蔽中断, STI恢复中断,于是,两者之间的代码就不会被外部中断打断。所以可以尽量保护代码连续执⾏。但是对于⼀些不允许屏蔽的中断以及异常,代码的运⾏还是会被中断

本文发布于:2023-05-16 09:38:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/110460.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:中断   指令   地址   标志   屏蔽   恢复
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图