Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 在ISR中调用Int 13h_Assembly_Keyboard Hook_Interrupt Handling_Real Mode_Isr - Fatal编程技术网

Assembly 在ISR中调用Int 13h

Assembly 在ISR中调用Int 13h,assembly,keyboard-hook,interrupt-handling,real-mode,isr,Assembly,Keyboard Hook,Interrupt Handling,Real Mode,Isr,我已经在实模式下通过汇编为int 9h编写了一个ISR。 在这个ISR中,我调用INT 13h,AH=0x02在硬盘上写入一些数据。但数据不会写入硬盘。此外,int 13h,ah=0x02也不起作用(从硬盘读取数据)。 调用int 13h后,进位标志打开,但AH和AL为零。 当我在ISR之外使用这段代码时,它就是工作! 为什么ISR中的INT13h不工作,但其他中断,例如,INT10h是否正常工作?简单的答案是INT13h如果没有硬盘驱动器硬件中断IRQ 5-INT0dh将无法成功完成,直到在键

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

简单的答案是
INT13h
如果没有硬盘驱动器硬件中断IRQ 5-
INT0dh
将无法成功完成,直到在键盘硬件中断IRQ 1-
INT9h
结束时确认PIC才会发生


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

我正在编写一个引导加载程序。我的代码在任何操作系统之前运行。请发布您的ISR代码,以便我们看到您正在尝试的内容。Int 9是一个硬件中断,您必须小心操作。我不希望int13再次进入。否则,这只是猜测,没有什么可看的。