在 ISR 中调用 Int 13h

发布于 2024-12-04 15:01:20 字数 230 浏览 0 评论 0原文

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

I have written a ISR for int 9h by assembly in Real Mode.
In this ISR, I call INT 13h, AH=0x02 for writing some data on Hard Disk. But data aren't written on Hard Disk. Also int 13h, ah=0x02 doesn't work too (Read data from Hard Disk).
after call int 13h, Carry Flag is On, but AH and AL are zero.
When I use this code out of ISR, it's work!
Why INT13h in a ISR doesn't work, but other interrupt, for example INT10h work correctly?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼泪也成诗 2024-12-11 15:01:20

简单的答案是,如果没有硬盘驱动器硬件中断 IRQ 5 -int 0Dhint 13h 将无法成功完成,直到键盘末尾确认 PIC 后才会发生该中断硬件中断 IRQ 1 -int 9h

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

The simple answer is thatint 13hwill not complete successfully without the hard drive hardware interrupt IRQ 5 -int 0Dhwhich will not occur until the PIC is acknowleged at the end of keyboard hardware interrupt IRQ 1 -int 9h.

The happy answer is that it is much simpler to use int 16h ah=0 to wait for a keypress.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文