在ISR中调用Int 13h

时间:2011-09-15 13:16:27

标签: assembly keyboard-hook interrupt-handling real-mode isr

我在实模式下通过汇编为int 9h写了一个ISR。 在这个ISR中,我调用INT 13h,AH = 0x02用于在硬盘上写入一些数据。但是数据不会写在硬盘上。同样int 13h,ah = 0x02也不起作用(从硬盘读取数据)。 在调用int 13h后,Carry Flag为On,但AH和AL为零。 当我从ISR中使用此代码时,它的工作正常! 为什么ISR中的INT13h不起作用,但是其他中断,例如INT10h正常工作?

1 个答案:

答案 0 :(得分:2)

简单的答案是int 13h如果没有硬盘驱动器硬件中断IRQ 5 - int 0Dh将无法成功完成,直到在键盘硬件中断IRQ 1结束时确认PIC才会发生 - int 9h - int 16h ah=0

  

快乐的答案是,使用{{1}}等待按键更加简单。