软件注册站
热情软件屋

 
32位汇编能调用int 21h中断吗
编号: QA000465    
建立日期: 1999年1月31日 最后修改日期: 2004年6月24日
所属类别: 其他语言 - 其他方面
   
    masm5
    win95
    我原来用汇编语言masm5在dos下开发模块(16位)供fortran5.1使用,现要改为fortran 90(32位)使用,汇编语言最高版本是多少?16位与32位汇编有什么差别?32位汇编能调用int 21h中断吗?
    (lzy)
   
    目前汇编最高版本是MASM 8.0(http://www.microsoft.com/downloads/details.aspx?FamilyId=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=en)。一般在Windows下使用汇编的都用MASM32(http://www.masm32.com/),它实际上是将MASM和其他一些工具组合在一起。16位与32位汇编在指令方面有一些差异,这你只要找一本讲386/486汇编的书就知道了。主要问题还不在于此,对于你的问题,最主要的是Windows 95和DOS的差异比较大。一般来说32位汇编程序在Win95下不应该再调用Int21h中断了,尽管在编译时不会遇到任何问题,但运行时会导致非法指令错误。Int21h中断的绝大多数功能都包括在Windows API中了,所以没有必要再调用中断,而应该调用Windows API。个别功能,如设置中断向量等已经被取消,在Windows 95/NT下需要编写设备驱动来完成类似的功能。
    如果你使用的是Visual Fortran,它可以象其它语言一样调用Windows API,你可能不需要写汇编模块了。
    
    相关问题:
    QA000450 "请问如何操作端口和编写中断程序"

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, 其他语言, asm, vba, vbscript, 其他方面,

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio