2

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

4

1 回答 1

2

简单的答案是,int 13h如果没有硬盘驱动器硬件中断 IRQ 5 就不会成功完成 -int 0Dh在键盘硬件中断 IRQ 1 结束时确认 PIC 之前不会发生这种情况 - int 9h

int 16h ah=0令人高兴的答案是使用它来等待按键要简单得多。

于 2011-09-24T13:50:11.113 回答