vb.net能用汇编吗 vb是一种汇编语言吗

VB.NET,部分机器获取不了CPU号(高分急用)

VB 我不熟,下面是用汇编写的,我运行过可以的。

在巨鹿等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、成都网站制作 网站设计制作定制网站开发,公司网站建设,企业网站建设,品牌网站制作,网络营销推广,外贸网站制作,巨鹿网站建设费用合理。

//--------------------------------

.model small

.586

.stack

.code

idstring db 49 dup('$')

start:

mov ax,@code

mov ds,ax

lea di,idstring

mov eax,80000002h

cpuid

mov dword ptr [di],eax

mov dword ptr [di+4],ebx

mov dword ptr [di+8],ecx

mov dword ptr [di+12],edx

mov eax,80000003h

cpuid

mov dword ptr [di+16],eax

mov dword ptr [di+20],ebx

mov dword ptr [di+24],ecx

mov dword ptr [di+28],edx

mov eax,80000004h

cpuid

mov dword ptr [di+32],eax

mov dword ptr [di+36],ebx

mov dword ptr [di+40],ecx

mov dword ptr [di+44],edx

mov ah,09h

lea dx,idstring

int 21h

mov ah,4ch

int 21h

end start

//-------------------------------------------------------

程序确实可以执行,输出CPU的ID等信息。

注意:DOS下或MS-DOS下使用。

vb c c++,c# vb.net到底什么区别

vb:

微软研发的(Visual Basic)是一种工具,用的语言是Basic

Basic是比尔盖兹发家致富的一大工具

主要用来做桌面程序,C/S系统

后来因为Delphi的冲击,被强占一部分市场

VB.net:

现在有了.NET : Microsoft Visual .NET

最新出了2005版(2007出的)

微软用来抗衡Java的新产品

主要市场是企业级开发,和SUN的java ee竞争尤为劲烈

在企业级开发里,基本上是java ee和.net平分秋色,其他的靠边站

在C/S B/S里表色都还算不错

用的语言有Basic c++

不过,目前在.NET平台里最流行的还是C#语言的开发

ASP.net winform,ADO.net技术都是使用 c#

C:经久不衰的语言

主要应用在嵌入式编程,硬件驱动程序设计中

说白了是计算机底层的编程设计

优点是可以嵌入汇编,可以直接与硬件打交道,做底层开发

缺点是在企业级开发中,几乎无用武之地

c++ :我非常钦慕的语言,又ATT的贝尔实验室研发

主要开发工具是微软的Visual C++和Borload的BCB(Borload C++ Builder)

优点在于含有大量的库,如MFC,可直接调用windows库函数干很多事情

其中的消息处理机制令我感觉尤为经典

缺点是,要想精通真不容易

主要领域一是做桌面程序,像QQ,迅雷这种桌面软件

领域二是做游戏后台开发,大部分游戏(包括魔兽等)后台语言就是使用C++

C# :

C# 与 C++ 比较的话,最重要的特性就是 C# 是一种完全面向对象的语言,而 C++ 不是,另外 C# 是基于 IL 中间语言和 .NET Framework CLR 的,在可移植性,可维护性 和强壮性都比 C++ 有很大的改进

C# 的设计目标是用来开发快速稳定可扩展的应用程序,当然也可以通过 Interop 和 Pinvoke 完成一些底层操作,但是对于一些和底层系统相关很紧密的程序(譬如说驱动程序),还是建议用 C++ 来写

如何在VB中使用汇编代码呢?

其实在VB中是不能直接使用汇编语言的,但是可以采用变通的方法,将汇编语言编译成二进制代码后,就可以在VB中使用了。

下面的代码以二进制代码的方式实现了无符号长整数的位移操作,因为VB不支持无符号长整数,要实现相同的功能比较麻烦而且效率低,要用汇编语言就简单多了。

Option

Explicit

Private

Declare

Function

CallWindowProc

Lib

"user32"

Alias

"CallWindowProcA"

(ByVal

lpPrevWndFunc

As

Long,

ByVal

hWnd

As

Long,

ByVal

Msg

As

Long,

ByVal

wParam

As

Long,

ByVal

lParam

As

Long)

As

Long

Private

Sub

Form_Load()

bin(0)

=

H824448B

bin(1)

=

H448B088B

bin(2)

=

H108B0424

bin(3)

=

H1089EAD3

bin(4)

=

H10C2C033

bin(5)

=

H90909000

a

=

HFFFFFFFF

b

=

8

CallWindowProc

VarPtr(bin(0)),

VarPtr(a),

VarPtr(b),

0,

Debug.Print

Hex(a)

End

Sub

这段代码执行了a=a8这样一个操作

其中

bin(0)

=

H824448B

bin(1)

=

H448B088B

bin(2)

=

H108B0424

bin(3)

=

H1089EAD3

bin(4)

=

H10C2C033

bin(5)

=

H90909000

是下面的C++代码编译后的二进制代码

long

CALLBACK

a_lm(HWND

a,

UINT

b,

UINT

c,

UINT

d)

{

(*(UINT*)a)=(*(UINT*)b);

return

0;

}

其对应的汇编语言如下

mov

eax,dword

ptr

[esp+8]

mov

ecx,dword

ptr

[eax]

mov

eax,dword

ptr

[esp+4]

mov

edx,dword

ptr

[eax]

shr

edx,cl

mov

dword

ptr

[eax],edx

xor

eax,eax

ret

10h

nop

nop

nop

用long

CALLBACK

a_lm(HWND

a,

UINT

b,

UINT

c,

UINT

d)这种形式,就可以直接用CallWindowProc来调用。

以上就是在VB中使用汇编(二进制代码)的一种方法,实际上用起来还是比较麻烦的,需要编译后在可执行文件中将代码接取出来

C#写的dll可以供vb.net和vc.net调用吗?

.Net语言是建立在FrameWork的基础上的,对于编译过的文件而言,都是使用的类汇编中间型语言了,而与什么语言编写已经没有关系了。所以只要是.Net语言编写的DLL,可以在.Net语言间任意调用。

机器语言是用二进制代码编写的 那汇编语言和高级语言是用什么编写的

汇编语言源程序是用汇编语言编写的。高级语言源程序是用C语言、C++、Java、C#、VB.NET等高级语言编写的。源程序经过汇编或编译后会生成中间代码或二进制代码,由运行时解释执行或直接执行。

VB采用什么编程方法和运行机制

编程方法:VB.NET编程语言是一种真正的面向对象编程语言(VB4-VB6

只能称为基于对象而不是面向对象,最明显的特征就是

VB4-VB6

都不支持类的继承),和传统

Visual

Basic

并不完全兼容。

运行机制:解释语言,就是他的程序是假的,只是一个代码包,还需要系统里面一个程序来读取运行,这就是VB效率不高的原因,还有就是为什么经常要用到运行库的原因


本文标题:vb.net能用汇编吗 vb是一种汇编语言吗
当前链接:http://myzitong.com/article/hppcgs.html