我在实模式下通过汇编为int 9h写了一个ISR。 在这个ISR中,我调用INT 13h,AH = 0x02用于在硬盘上写入一些数据。但是数据不会写在硬盘上。同样int 13h,ah = 0x02也不起作用(从硬盘读取数据)。 在调用int 13h后,Carry Flag为On,但AH和AL为零。 当我从ISR中使用此代码时,它的工作正常! 为什么ISR中的INT13h不起作用,但是其他中断,例如INT10h正常工作?
答案 0 :(得分:2)
简单的答案是int 13h
如果没有硬盘驱动器硬件中断IRQ 5 - int 0Dh
将无法成功完成,直到在键盘硬件中断IRQ 1结束时确认PIC才会发生 - int 9h
- int 16h ah=0
。
快乐的答案是,使用{{1}}等待按键更加简单。