汇编:中断小问题

在WIN32下能调用BIOS的INT命令吗?书上说这些中断是BIOS厂商提供的,可又要要求在REAL-MODE16位下调用.为什么32位就不能调用这个中断?如果不能,那W... 在WIN32下能调用BIOS的INT命令吗?书上说这些中断是BIOS厂商提供的,可又要要求在REAL-MODE 16位下调用. 为什么32位就不能调用这个中断? 如果不能,那WINXP怎么办?它最终还是要调用BIOS的中断来执行一写输入输出命令. 展开
 我来答
jcw_2010
2011-03-15 · TA获得超过942个赞
知道小有建树答主
回答量:219
采纳率:100%
帮助的人:273万
展开全部
在WIN32下是不能调用BIOS的INT中断服务程序的。但微软为了以前dos系统下的应用程序可在win32系统中继续使用,提供了虚拟8086模式,即虚拟出一个dos系统供以前的dos16位程序运行,但是一些硬件中断功能,如读写硬盘的bios中断请求出于安全等因素考虑,还是不能成功执行。
Windows是出于系统的安全和可方便应用程序编程等方面的考虑,不支持直接的中断调用,因为中断是处于系统底层的东东,像dos下的中断功能,用中断号来指明功能,繁琐又容易出错,实在不方便编程,而且中断号、ah值等表示的功能号又是有限的,不能提供很多的系统功能。windows提供了API编程, 支持用函数名来调用系统服务,如ReadFile等,方便直观,易于编程。

另外win32系统在启动时可能是用到了BIOS中断,但在之后是不用BIOS中断的功能的,因为BIOS的代码是16位的,且只支持单线程,在32位多线程保护模式下工作是不合适而且是不能的。系统里有硬件驱动、内核等代码替代了bios的硬件io等功能。
AJISky
2011-03-11 · TA获得超过1122个赞
知道小有建树答主
回答量:457
采纳率:100%
帮助的人:247万
展开全部
能调用,不过微软不希望这样,因为在32位平台下调用部分BIOS中断会产生错误,冲突,一方面微软是出于让BIOS中断退出市场,转而使用他的WIN api系统调用,不过你当然可以调用,一部分能正常使用一部分不能够 ,你可以实验一把
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式