阅读:1101回复:7
如何理解软中断?
下面一段程序是Delphi写的GUI程序,里面有int13h的软中断的调用。
对于Win9x的系统,如果写成Console的模式的程序,则运行没有问题。 而编译为GUI模式的话,会出现蓝屏的异常。 而对于以nt为架构的Win2x/xp系统,无论是console模式还是GUI模式, 都会被系统的结构化异常(SEH)所屏蔽。 你对这个问题是怎么看的?是否可以在Win2k下面写一个驱动,使得 Win2k/xp能够调用INT13H procedure TForm1.Button1Click(Sender: TObject); var buff :array[1..512] of byte; begin asm mov ax,201h mov bx,offset buff mov cx,0001 mov dx,0000 int 13h end end; |
|
沙发#
发布于:2005-03-19 10:46
建议你把基本概念搞清楚再说......
|
|
|
板凳#
发布于:2005-03-19 11:44
下面一段程序是Delphi写的GUI程序,里面有int13h的软中断的调用。 看看有关保护模式的书,应用程序和驱动运行在不同的Ring。Windows将所有硬件的权限都拿走了,对于Win9x的系统,如果写成Console的模式的程序,则运行没有问题。其实是win9x捕获你的要求,然后它用VxD实现后将结果给你的 |
|
|
地板#
发布于:2005-03-19 12:36
Win2k中有关int 13h的要求是靠磁盘驱动实现的,不再调用BIOS的这个Int 13h了,即直接端口IO控制DMA或PIO传输,捕获磁盘请求需靠过滤驱动实现。你看Intel 386手册时发现前20h个中断是Intel保留的,所有硬件中断被Windows搬走了,就是核心中也已不再能用int 13h了
|
|
|
地下室#
发布于:2005-03-19 14:02
在系统启动阶段,就是ntldr时就已经把BIOS区域搬移了,在完成系统的初始化后就被覆盖掉了.
bmyyyud,你的QQ还没有申请下来么?有事情找你 |
|
5楼#
发布于:2005-03-19 16:24
在系统启动阶段,就是ntldr时就已经把BIOS区域搬移了,在完成系统的初始化后就被覆盖掉了. QQ根本无法申请,MSN也出了个什么7.0也不能用了。不行用个快递通吧。www.kdt.cn上下一个,还能远程控制呢,号也好申请,请大家试用!!我刚申请了个号:2564876,我等你。。。 |
|
|
6楼#
发布于:2005-03-19 17:09
[quote]在系统启动阶段,就是ntldr时就已经把BIOS区域搬移了,在完成系统的初始化后就被覆盖掉了. QQ根本无法申请,MSN也出了个什么7.0也不能用了。不行用个快递通吧。www.kdt.cn上下一个,还能远程控制呢,号也好申请,请大家试用!!我刚申请了个号:2564876,我等你。。。 [/quote] 等不着你了,不知有什么事,只好改天了,申请到快递通号写在下面 |
|
|
7楼#
发布于:2005-03-19 17:42
有什么事情可以发邮件啊,我可以立刻收到。
|
|
|