Inline ASM for VB6(VB6内联汇编)插件+测试程序下载
VB6的代码效率不高,想在VB6里用汇编做终极提速吗?下载这个插件,立即满足您的愿望!
系统需求:
1. 系统上必须安装有VB6(目前尚不支持.NET)
2. 系统上必须安装MASM32 V9.0(请去http://www.masm32.com/masmdl.htm下载安装)
下面是INLINE ASM VB插件的下载地址:
点击此处下载 ourdev_251642.rar(文件大小:195K) (原文件名:inline vb.rar)
安装方法:
先解压缩,然后进入inline vb addin目录,用VB6打开VbInLineASM.vbp,如果有错误则可以忽略。在文件菜单里编译VbInLineASM.dll,这个文件的输出地址应该选在windows\system32里。
重新启动VB6,工具栏上会有一个小ASM的图标(没有的话打开插件菜单下的插件管理器人工添加),点击这个图标,在出现的窗口里点Change Settings,在最下方倒数第二行是MASM编译器的地址(默认是空的),点旁边的“...”按钮,找到MASM的编译器ml.exe确定即可(一般地址是c:\masm32\bin\ml.exe),完成后点上方的Exit Settings就可保存退出了。
以后在VB6里使用内联汇编用
'#ASM_START
'
'mov eax, 12345678 ;Put a number in EAX
'
'ret ; Return with result in EAX
'#ASM_END
这样的格式。
注意为了避免VB出错ASM代码是需要用'注释掉的,而且在程序全编译成EXE以后才能测试汇编语言的部分,否则汇编语言在VB环境下调试时是不起作用的。
下图为一个嵌入汇编的测试例程截屏。
运算任务是分别用内联汇编和VB方式做一千万次4*2^3运算,结果显而易见汇编比VB快了足足3.2647秒。
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_251583.gif
(原文件名:masvb1.gif)
内联汇编做4*2^3的代码:
Public Function Power2ASM(ByVal Num As Long, ByVal Power As Long) As Long
'#ASM_START
'push ebp
'mov ebp, esp
'
'mov eax, ; Get first argument
'mov ecx, ; Get second argument
'rcl eax, cl ;shl eax, cl ; EAX = EAX * ( 2 to the power of CL )
'mov esp, ebp ;MOV/POP is much faster
'pop ebp ;on 486 and Pentium than Leave
'ret 8
'#ASM_END
End Function 强是强但有多大用?
极易与极难搭配? 【1楼】 hemjidn
强是强但有多大用?
极易与极难搭配?
__________________________
主要是用来给VB提速用的。 有一个新VB6插件叫ThunderVB可以同时在VB6里内联编译ASM和C指令,我没用过但从截屏看这个插件甚至还在VB里提供动态C语言帮助提示,相当不错。
项目地址:http://sourceforge.net/projects/thundervb/
这个插件需要VC6和MASM32的支持。
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_252182.gif
(原文件名:slideshow.gif)
页:
[1]