cli/sti 用法

cli 禁止中断发生
sti 允许中断发生

在对 ss 和sp操作的时候,  如果有中断发生,中断的保存现场的操作是将相关寄存器值保存到ss:sp指向的地址.
如果ss 或者sp没有完成赋值操作, 这时候ss:sp指向的地址则是不期望的地方. 如果将系统或者其他应用的数据覆盖,会导致系统/应用崩溃.

 下面是两条规则:  
  1)在改变ss:sp之前,必须用cli指令屏蔽中断,然后等操作执行完立即用sti指令恢复  
  2)ss:sp需要设置在空闲的内存地址,不要建立在其他的程序代码区  
   
  正确的写法:  
  cli  
  mov   ax,0b900h  
  mov   ss,ax  
  mov   sp,100h  
  sti

你可能感兴趣的:(cli/sti 用法)