标题:[求助]我用汇编写了一个DOS程序,要调用中断的,在32位WINDOWS中又该怎么调 ...
只看楼主
曼菲士
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-8-27
结帖率:0
已结贴  问题点数:20 回复次数:8 
[求助]我用汇编写了一个DOS程序,要调用中断的,在32位WINDOWS中又该怎么调用中断呢?
我写了一个程序是这样的

mov ax,4f00h ;VBE功能调用,获取VESA信息
mov di,offset buffer ;保存数据区
int 10h       ;调用中断

在32位WINDOWS程序中是不能直接调用中断的,听说可以通过开V86任务来实现,但这方面的例子很多都是从实模式进入V86模式,从WIN32程序进入V86的例子没找到过,希望有相关经验的朋友麻烦指点一二,万分感谢。

[ 本帖最后由 曼菲士 于 2010-9-21 12:25 编辑 ]
搜索更多相关主题的帖子: DOS WINDOWS 汇编 
2010-09-17 14:42
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:5 
这个问题 如果要在win32环境下实现同样的功能肯定需要用windows提供的API

那 你这程序啥功能啊 呵呵 俺不知道 也不知道怎么用win32实现
2010-09-17 19:45
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
得分:5 
其实在V86模式下,int10的非独占功能还是可以直接使用的。
给个例子:
vspeed13.zip (61.45 KB)

windows提供了一个类似于int10直接写屏幕缓冲区的功能,他现在是一个函数组,名曰:DrictX。你有兴趣的话,可以看看这方面的教材。

btw:
还可以通过写虚拟驱动的方式,再WINDOWS内核中直接操作BIOS 中断调用。愿意啃铁豆腐的话,也不妨试试。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-09-17 22:01
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
得分:5 
来膜拜下LS的兄弟
2010-09-18 11:05
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
以下是引用东海一鱼在2010-9-17 22:01:00的发言:

其实在V86模式下,int10的非独占功能还是可以直接使用的。
给个例子:

windows提供了一个类似于int10直接写屏幕缓冲区的功能,他现在是一个函数组,名曰:DrictX。你有兴趣的话,可以看看这方面的教材。

btw:
还可以通过写虚拟驱动的方式,再WINDOWS内核中直接操作BIOS 中断调用。愿意啃铁豆腐的话,也不妨试试。


2010-09-18 23:17
绝对的菜
Rank: 2
等 级:论坛游民
帖 子:35
专家分:27
注 册:2010-9-5
得分:5 
32位汇编和16位是不同的,需要专门学习的。。
2010-09-20 22:21
曼菲士
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-8-27
得分:0 
我的这个功能主要是针对Windows PE系统不能运行这段代码问题,这是获取VESA信息的代码,和Windows API无关。
2010-09-21 12:19
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
得分:0 
以下是引用曼菲士在2010-9-21 12:19:17的发言:

我的这个功能主要是针对Windows PE系统不能运行这段代码问题,这是获取VESA信息的代码,和Windows API无关。
   写16位代码,跑V86模式。32位PE只能上驱动。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-09-21 14:51
曼菲士
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-8-27
得分:0 
最终还是考虑写个VXD可能行。
2010-09-25 15:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-320706-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.037971 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved