找回密码
 注册

QQ登录

只需一步,快速开始

完全用VB进行ASM编程的示例

[复制链接]
发表于 2008-9-28 16:21:50 | 显示全部楼层 |阅读模式
<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下面的例子完全用</SPAN><SPAN lang=EN-US>VB</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行</SPAN><SPAN lang=EN-US>ASM</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">编程的示例,本例获得</SPAN><SPAN lang=EN-US>CPU ID.</SPAN></P>2 X  J$ U( j9 h0 [
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
: w  O+ Q5 T) I1 X  F- c. f<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">工程文件分为一个</SPAN><SPAN lang=EN-US>form1.frm </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和一个模块</SPAN><SPAN lang=EN-US>module1.bas</SPAN></P>
+ u2 ?. }# b1 f9 K: Z' e<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>* _% ?6 |8 |% Y
<P class=MsoNormal><SPAN lang=EN-US>----------------------form1.frm</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的源文件</SPAN><SPAN lang=EN-US>---------------------</SPAN></P>
# }% Z2 U& o. p( F: j* G) D& P<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
8 F/ f$ d/ a' g# r3 j0 _9 C" T) E<P class=MsoNormal><SPAN lang=EN-US>VERSION 5.00</SPAN></P>
! v: ~1 Z8 D! K! U5 G/ q3 E<P class=MsoNormal><SPAN lang=EN-US>Begin VB.form form1 </SPAN></P>0 p+ r. @3 u# z- ~0 B0 d
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Caption<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>"form1"</SPAN></P>
/ U$ A# q" d% c( p" w) h<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>ClientHeight<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>1965</SPAN></P>
/ k: H2 I0 J, R3 g5 u3 P  g- D, ?# @<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>ClientLeft<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>60</SPAN></P>
9 m6 `, D$ ^$ R% n' ^8 j<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>ClientTop<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>345</SPAN></P>
) g+ @; S6 y6 K- m<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>ClientWidth<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>3105</SPAN></P>
( s6 _# r8 J! P3 N<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>LinkTopic<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>"form1"</SPAN></P>
) W" F9 @% f6 n+ Z3 x- i<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>ScaleHeight<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>1965</SPAN></P>, h7 ?4 ^, M; M$ b! F4 z  P6 k' G
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>ScaleWidth<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>3105</SPAN></P>
& P4 t& z/ j2 n1 C7 b9 i: P<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>StartUpPosition =<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>2<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>'Bildschirmmitte</SPAN></P>
' w% r& w0 Z- N! f. R( H<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Begin VB.CommandButton Command1 </SPAN></P>
6 g. {& A- M$ ], T, R3 k. S<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Caption<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>"Get CPU Name"</SPAN></P>
* q, c; r6 |; p5 P<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Height<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>495</SPAN></P>1 G6 N8 g6 y7 ~* p2 |0 F
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Left<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>840</SPAN></P>8 h1 F0 A& S0 U% ]! E& ]
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>TabIndex<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>0</SPAN></P>* f* ]4 d/ ~9 k
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Top<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>315</SPAN></P>
3 M$ ?% w3 Y  C) s! x) o+ P<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Width<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>1425</SPAN></P>$ S6 s6 {0 N6 ]
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>End</SPAN></P>2 Y) W  |: o+ _- K
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Begin VB.Label Label2 </SPAN></P>
4 M- M" b* q) z! a8 O$ m! ^<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Alignment<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>2<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>'Zentriert</SPAN></P>+ x3 I* D, ~! n5 V5 H' L
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>AutoSize<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>-1<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>'True</SPAN></P>
! Z, x" `. M5 a. z6 m8 G& @<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>BeginProperty Font </SPAN></P>; ~7 e. W& T8 g$ F" N: t0 ?/ G
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Name<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>"MS Sans Serif"</SPAN></P>" X7 o- d5 X- [* \* m4 `6 x+ @
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Size<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>9.75</SPAN></P>
5 q/ s( D5 [' t! m<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Charset<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>0</SPAN></P>
) J6 R7 k9 I$ G; d' P<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Weight<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>400</SPAN></P>
( R; |* T# l( }: ^<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Underline<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>0<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'False</SPAN></P>
$ w0 U. `/ V+ v( M, v- R# h' F<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Italic<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>0<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'False</SPAN></P>
3 e1 h/ Z/ D/ N9 Q, U, C; ^<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Strikethrough<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>0<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'False</SPAN></P>
+ J7 |" j8 W3 e$ m" @, R<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>EndProperty</SPAN></P>
5 |8 B5 Q( P' g! J4 v<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Height<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>240</SPAN></P>% C" M% t, v6 x- c  T
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Left<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>1515</SPAN></P>, Z# C& a: T( O. M
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>TabIndex<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>2</SPAN></P>
/ x; ]4 h4 B9 s0 L7 o7 F) F<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Top<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>1065</SPAN></P>
% v/ f6 H; L) ~4 I& Y<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Width<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>60</SPAN></P>
1 ]: S; g, z5 T  L5 U<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>End</SPAN></P>, ]: V' a1 f) t" e) ]" Z0 S
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Begin VB.Label Label1 </SPAN></P>4 b3 L4 e* ?: |7 \
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Alignment<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>2<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>'Zentriert</SPAN></P>
, w) P0 L# R" W8 @<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>AutoSize<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>-1<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>'True</SPAN></P>
2 g' I8 _4 w/ P8 A+ q$ W1 n<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>BeginProperty Font </SPAN></P>
, N# N3 w! a5 K. M, `<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Name<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>"Arial"</SPAN></P>
& P$ g3 a6 v7 y$ s# O* j; _" f<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Size<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>12</SPAN></P>* H" g1 f6 N5 t9 j6 A0 H3 w/ G' S
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Charset<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>0</SPAN></P>
) H* l; l, A6 ~$ c5 y7 s( |, e$ q5 R<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Weight<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>700</SPAN></P>3 s- Q/ k) e$ q2 w$ Y
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Underline<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>0<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'False</SPAN></P>  U4 t& P$ O) P: W0 o! Q8 N
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Italic<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>0<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'False</SPAN></P>
$ R, x. }$ n7 I1 c0 }. B1 h* m<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Strikethrough<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>0<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'False</SPAN></P>
& G' X; U+ [5 Q9 e4 p/ a/ |7 c<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>EndProperty</SPAN></P>+ r, a% ?& J, j8 x7 S
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Height<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>285</SPAN></P>/ q- t$ A$ r! g, Z, R
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Left<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>1515</SPAN></P>
2 y3 U( J0 ]( @) S2 c$ Y. z4 s0 N& l<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>TabIndex<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>1</SPAN></P>
# r* d5 L& t" m& H2 H<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Top<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= <SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>1350</SPAN></P>1 T  u7 x9 q$ `% g
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Width<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>75</SPAN></P>3 Z: n9 |5 |1 U% t" E; K" \
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>End</SPAN></P>
; x' K! k! E0 c/ e4 ~<P class=MsoNormal><SPAN lang=EN-US>End</SPAN></P>
$ r1 y. G/ K- N; ?; m<P class=MsoNormal><SPAN lang=EN-US>Attribute VB_Name = "form1"</SPAN></P>
: ~2 e5 S$ F9 B/ U3 N9 N/ N<P class=MsoNormal><SPAN lang=EN-US>Attribute VB_GlobalNameSpace = False</SPAN></P>6 Q  y& }) l9 f! r2 x5 k
<P class=MsoNormal><SPAN lang=EN-US>Attribute VB_Creatable = False</SPAN></P>6 B- G& m9 M7 f9 R9 d* Y; f+ o
<P class=MsoNormal><SPAN lang=EN-US>Attribute VB_PredeclaredId = True</SPAN></P>  p$ ~5 {" _5 ^: a, J
<P class=MsoNormal><SPAN lang=EN-US>Attribute VB_Exposed = False</SPAN></P>+ O' s& a5 u2 c* s! w5 x
<P class=MsoNormal><SPAN lang=EN-US>Option Explicit</SPAN></P>
# i  n  Z  n0 I: K. {3 Z<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
" ^( U$ C& G0 R0 z5 G. ?<P class=MsoNormal><SPAN lang=EN-US>Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)</SPAN></P>' ]( o5 \* n6 s& C. \2 R1 A
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
& m. j( S/ x+ ~% t' M/ x/ \' r<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>Label1 = ""</SPAN></P>7 B3 @5 l4 G  @# W5 p# ~( x
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>Label2 = ""</SPAN></P>
2 G9 p; g8 m# a0 C' p! t<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>& W* O1 _* r0 Y" e0 J
<P class=MsoNormal><SPAN lang=EN-US>End Sub</SPAN></P>$ ~7 D# {) Y6 h0 {  E
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>5 N* E* ], ?! W2 h
<P class=MsoNormal><SPAN lang=EN-US>Private Sub Command1_Click()</SPAN></P>; Y9 Y& P/ D1 ~0 `" u+ q
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
1 j# I) F( o) P. @<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>Label1 = GetCpuName() &amp; " CPU"</SPAN></P>
7 [+ M# M2 E& c9 I* \  m<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>Label2 = "You have a" &amp; IIf(InStr("AEIOU", Left$(Label1, 1)), "n", "")</SPAN></P>4 y: c& R! Z- a/ m5 [, I/ X
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>: \& k6 j+ {& w& l: ^
<P class=MsoNormal><SPAN lang=EN-US>End Sub</SPAN></P>
, E9 J* ]: ~1 ^& g<P class=MsoNormal><SPAN lang=EN-US>------------------------------end---------------------------------</SPAN></P>
' L- s; D$ A# [6 `2 \/ f" U) T<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>7 S7 M& L* S$ @; M. u& \
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>9 H* [. x4 T0 R& F3 h
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
% b6 u4 T% t" Y8 n8 h<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下面是</SPAN><SPAN lang=EN-US>modu1e.bas</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的源代码</SPAN></P>  Z. W' W; S- c, U
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
* V% c% p# O% `2 z. ]. w  z<P class=MsoNormal><SPAN lang=EN-US>----------------------module1.bas</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的源文件</SPAN><SPAN lang=EN-US>--------------------------</SPAN></P>
5 T% ^1 i( `' h7 {; z1 r- m9 R0 Y<P class=MsoNormal><SPAN lang=EN-US>Option Explicit</SPAN></P>
2 m3 Y+ W) {" w3 Y1 R5 E8 I<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>0 P: q& |5 Y2 G- o/ A& Y& ]% V
<P class=MsoNormal><SPAN lang=EN-US>'This shows how to incorporate machine code into VB</SPAN></P>& B; ~, Y, `  u! M+ A* _
<P class=MsoNormal><SPAN lang=EN-US>'''''''''''''''''''''''''''''''''''''''''''''''''''</SPAN></P>' o& A% A* C  p! Z+ o; L  ~6 [: {
<P class=MsoNormal><SPAN lang=EN-US>'The example fills the array with a few machine instructions and then copies</SPAN></P>3 v" i' D  D$ c; I5 S  {/ s
<P class=MsoNormal><SPAN lang=EN-US>'them to a procedure address. The modified procedure is then called thru</SPAN></P>  v9 b' G9 j3 d! p; x: `
<P class=MsoNormal><SPAN lang=EN-US>'CallWindowProc. The result of this specific machine code is your CPU Vendor Name.</SPAN></P>  k/ ~' B& l5 l
<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>; y2 B4 b& Y6 k3 V7 w
<P class=MsoNormal><SPAN lang=EN-US>'##########################################################################</SPAN></P>6 @$ Y8 L8 E0 t4 [6 e7 E& O+ I; K
<P class=MsoNormal><SPAN lang=EN-US>'Apparently it gets a Stack Pointer Error, but I don't know why; if anybody</SPAN></P>2 U- \+ Y* {( U) h5 B5 t
<P class=MsoNormal><SPAN lang=EN-US>'can fix that please let me know...<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>UMGEDV@AOL.COM</SPAN></P>) ?5 \( v2 N% Z' {6 r
<P class=MsoNormal><SPAN lang=EN-US>'The Error is not present in the native compiled version; so I think it got</SPAN></P>
! X6 ]  X9 P+ l9 Y; k<P class=MsoNormal><SPAN lang=EN-US>'something to do with the P-Code Calling Convention (strange though)...</SPAN></P>
* R2 {4 D; j0 E<P class=MsoNormal><SPAN lang=EN-US>'##########################################################################</SPAN></P>8 u' d9 [  m4 _& k6 g$ u
<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>8 z% ~9 _# }3 R( ]
<P class=MsoNormal><SPAN lang=EN-US>'Sub Dummy serves to reserve some space to copy the machine instructions into.</SPAN></P>
6 m0 p, f: M) P5 T' J<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>
8 o$ B" k# x4 H$ q<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>
6 l& t" @3 Q8 O/ ]. h9 b: \<P class=MsoNormal><SPAN lang=EN-US>'Tested on Intel and AMD CPU's (uncompiled and compiled)</SPAN></P>
) y# B& {+ B4 |; }- n0 E4 O! E* W) D<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>/ e' X$ y' _8 z" e/ c
<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>
- t6 _- U: e, H7 T% [6 @! F( `9 a% C3 J<P class=MsoNormal><SPAN lang=EN-US>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</SPAN></P>
' A6 g- F- @' i! W& {0 L* }<P class=MsoNormal><SPAN lang=EN-US>Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)</SPAN></P>
8 q' F0 T  w: m; z4 F. Y& t<P class=MsoNormal><SPAN lang=EN-US>Private x As Long</SPAN></P>$ C3 n6 T; z8 l6 `, r4 {7 B1 h" M! X
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
1 V1 C9 \6 l5 H! n9 g* ?( G<P class=MsoNormal><SPAN lang=EN-US>Public Function GetCpuName() As String</SPAN></P>, `' z  c" |- N. M7 C
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>7 R1 A6 d! ~, e3 _% s7 p
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Dim MachineCode(0 To 35)<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>As Byte</SPAN></P>
* C' I5 H( E# y2 C5 [$ X7 ~<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Dim VarAddr<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>As Long</SPAN></P>7 \( v  }# ]4 J
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Dim FunctAddr<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>As Long</SPAN></P>- y* h* `9 M8 X# ?. Y, e* z/ j2 d) |  q
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Dim EAX<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>As Long</SPAN></P>
: f( L! a- {- v1 V<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Dim CPUName(1 To 12)<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>As Byte</SPAN></P>* _0 P) t/ H2 o9 V* v7 l  B
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>( T( A* m( x) v, a
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>'set up machine code</SPAN></P>% |9 g. Q2 D) ?
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
) e* H# q9 y) [9 H9 a+ g9 z" P. z<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(0) = &amp;H55<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>'push ebp</SPAN></P>
- x( P' ?' W0 Z: ?<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
' v9 d: p1 T- r8 t<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(1) = &amp;H8B<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>'move ebp,esp</SPAN></P>
- a& @# A" |: p  C( K<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(2) = &amp;HEC</SPAN></P>
* x1 O4 q3 v7 w2 Z<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>( Y( @0 Q" o& c- b' r% m$ [
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(3) = &amp;H57<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>'push edi</SPAN></P>
* |6 m) _! S  E) V<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>2 l: `7 ^) I+ m# A: t
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(4) = &amp;H52<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>'push edx</SPAN></P>
1 [5 J, N+ p  p2 C<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
( v* Q$ N5 z$ G9 s<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(5) = &amp;H51<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>'push ecx</SPAN></P>
. u$ }5 q% c9 K4 x# G% ^<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
! ~3 V6 a7 o  }; Q% C2 t<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(6) = &amp;H53<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>'push ebx</SPAN></P>
5 Y9 o" ?: ~! s  j6 X7 r- ?" U<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
/ W  o* z8 V/ ?  T* |<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(7) = &amp;H8B<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>'move eax,dword ptr [ebp+8]</SPAN></P>. C) i! `# e+ ]2 ?, k5 j
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(8) = &amp;H45</SPAN></P>
* ~8 [2 O/ s: |* @) ]9 D<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(9) = &amp;H8</SPAN></P>! @3 x7 {* C" I- i- h+ b
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
' H" B$ q7 c: `5 E; D- r<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(10) = &amp;HF<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>'cpuid</SPAN></P>
1 N: x: D& D# L! V<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(11) = &amp;HA2</SPAN></P>' r! I' [: L4 T
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
% }- |- x1 }9 i<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(12) = &amp;H8B<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'mov edi,dword ptr [ebp+12]</SPAN></P>- W1 A5 R8 s9 m$ F- }& }4 w' \  z
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(13) = &amp;H7D</SPAN></P>; {3 z4 ^5 M3 Z. `2 G
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(14) = &amp;HC</SPAN></P>
' }9 M  v' l1 w) V: I<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
+ v  S) v3 B' S2 {3 V<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(15) = &amp;H89<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'move dword ptr [edi],ebx</SPAN></P>
. q$ d0 d0 Y& g5 ~& z9 d<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(16) = &amp;H1F</SPAN></P>
: N% b# Y6 u" \! ^  _: H<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>- C; y5 w: b* [$ t* X, R
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(17) = &amp;H8B<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'mov edi,dword ptr [ebp+16]</SPAN></P>/ C' L; N5 ]0 |5 U. }
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(18) = &amp;H7D</SPAN></P>
$ ^) [( |, @" b' r. t# G( B9 L<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(19) = &amp;H10</SPAN></P>, R# i6 @9 g2 Z1 F4 _5 Z
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
, Z" ]: M1 V+ y<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(20) = &amp;H89<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'move dword ptr [edi],ecx</SPAN></P>
' ^) C9 Q: `! B* r1 l  v<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(21) = &amp;HF</SPAN></P># H2 I+ V1 C) G* q" u
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
# B- p& E! k- N% h! J5 J/ X8 M<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(22) = &amp;H8B<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'mov edi,dword ptr [ebp+20]</SPAN></P>
* X4 e# M" Q; ^! j2 V<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(23) = &amp;H7D</SPAN></P>
' F) y7 t* F, ~9 K5 f: u& J<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(24) = &amp;H14</SPAN></P>9 D# `# X$ R5 F3 b7 `
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
8 j6 e( f7 n% h. ^# f+ B<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(25) = &amp;H89<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'move dword ptr [edi],edx</SPAN></P>
+ G0 ~7 O4 K- Y0 x<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(26) = &amp;H17</SPAN></P>, G* I: K" B" C" E
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
% J) |/ k1 p9 _: R* i$ \% m<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(27) = &amp;H58<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'pop ebx</SPAN></P>
. Q. U8 I8 U* u3 |* W5 a  ~<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
" T, x( I0 C6 h7 ~' D<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(28) = &amp;H59<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'pop ecx</SPAN></P>
5 O" h. w" `  V$ R- a4 z' B<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>( s* T7 r1 H4 \: I+ ^
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(29) = &amp;H5A<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'pop edx</SPAN></P>9 M1 a% Q1 e$ W/ s+ N' {$ Z
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P># D+ Y- }9 j& p( @' z; f# d
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(30) = &amp;H55<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'pop edi</SPAN></P>
; Y' k% j& h' H) w<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>+ ]. I5 {9 z; P
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(31) = &amp;HC9<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'leave</SPAN></P>
  ?+ a5 X  |3 Y# |+ ?) ~" t<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
3 r5 O* @1 x. H" j9 y9 U<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(32) = &amp;HC2<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'ret 16<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>I tried everything from 0 to 24</SPAN></P>
9 O) x( N$ i0 _0 m<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(33) = &amp;H10<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>but all produce the stack error</SPAN></P>  l9 g+ \/ q$ o7 \$ ~" o
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(34) = &amp;H0</SPAN></P>( U& p7 h% ?, t+ l* X$ @& G
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
. C* J4 X" Q3 o! E' u' Q- Q2 w1 z% o<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'tell cpuid what we want</SPAN></P>
2 f" S  Y6 b7 b<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>EAX = 0</SPAN></P>
! k1 x0 L& C% ?8 Y9 j<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
9 O2 u3 {# w) P( g' ~<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'get address of Machine Code</SPAN></P>0 |2 ^+ \1 A$ I: o4 D
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>VarAddr = VarPtr(MachineCode(0))</SPAN></P>
8 l% J0 B& E7 W- f+ ^: R<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
7 w2 j6 w. q- f6 I4 M$ T<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'get address of Sub Dummy</SPAN></P>7 U# |# h* S7 k; b5 l1 o
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>FunctAddr = GetAddress(AddressOf Dummy)</SPAN></P>
3 E  x5 o% _4 `- D! h<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
' B8 t9 F3 l7 c+ n<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'copy the Machine Code to where it can be called</SPAN></P>+ k% u% p* B2 v, x) ^. o6 ~. o; D
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>CopyMemory ByVal FunctAddr, ByVal VarAddr, 35 '35 bytes machine code</SPAN></P>
9 X+ A2 Q2 f! e' y! ?$ n5 ]) J9 i<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>. w1 ^; A! D  q( D, U. x' _
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'call it</SPAN></P>7 n  G. S- x, _' ?# z/ O
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>On Error Resume Next 'apparently it gets a stack pointer error when in P-Code but i dont know why</SPAN></P>
# U6 M3 e# N7 o# M7 B/ T3 Q/ M<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>CallWindowProc FunctAddr, EAX, VarPtr(CPUName(1)), VarPtr(CPUName(9)), VarPtr(CPUName(5))</SPAN></P># Q( s, o: L# N( s  z/ w  u# u
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>'Debug.Print Err; Err.Description</SPAN></P>' y: W1 s( {+ m9 t% S- g: K
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>'MsgBox Err &amp; Err.Description</SPAN></P>& c5 w+ H! \: `6 R+ f" y! G- }
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>On Error GoTo 0</SPAN></P>
# Z/ [" J1 L" Y7 {<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
! f3 ]& D+ X0 M# Z7 `# F- P  n/ r<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>GetCpuName = StrConv(CPUName(), vbUnicode) 'UnicodeName</SPAN></P>5 E/ W0 f+ N0 }$ q; D  X
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>" _' I# X' x  a5 H. F# i
<P class=MsoNormal><SPAN lang=EN-US>End Function</SPAN></P>0 t9 t% s9 C/ F( L) _7 T
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
- D7 ~! n% F8 Q& B5 t2 o<P class=MsoNormal><SPAN lang=EN-US>Private Function GetAddress(Address As Long) As Long</SPAN></P>
; z7 T5 K) t( R, b<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
& b8 ]0 T4 g7 ]<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>GetAddress = Address</SPAN></P>
+ }& x; Z& i$ I7 t<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
: V& T5 Y1 n( ]- B& v- E<P class=MsoNormal><SPAN lang=EN-US>End Function</SPAN></P>
) Q: \* |: e# ~" O$ i% [  Q<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
: x5 {- ~' N; u. L* C<P class=MsoNormal><SPAN lang=EN-US>Private Sub Dummy()</SPAN></P>0 F! @/ l) t$ P! p7 u8 M  v5 m
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
2 D; w+ c6 s; W<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>'the code below just reserves some space to copy the machine code into</SPAN></P>
; g: B1 \8 M6 U- O9 H! i' O<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>'it is never executed</SPAN></P>
& s5 H0 g4 N+ |3 O- G( C<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>" I* v7 z8 b6 g& R5 V& k/ |
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 0</SPAN></P>
6 D. J; Z9 }! d, L6 b<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 1</SPAN></P>
3 j% u  r9 Q" W  y) r" `# a<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 2</SPAN></P>0 }( r* n7 f2 M5 b/ }, d/ Z3 b
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 3</SPAN></P>5 Y$ r1 t3 S" h/ G  v3 B% U: ~9 E4 _. }
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 4</SPAN></P>
; i' Y* u% c4 I3 z<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 5</SPAN></P>; S, N. X5 k2 q
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 6</SPAN></P>4 E4 K0 X7 K$ d/ h
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 7</SPAN></P>" n" U" v+ a- q7 S
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 8</SPAN></P>
  ~. O* s7 n: Z" A<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 9</SPAN></P>( _: g" i7 _3 q4 ]" [; T; s" o
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 10</SPAN></P>
) F% W2 S) k( r/ \<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 0</SPAN></P>
: T- ~5 N8 [; g1 c. d6 o, t' r<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 1</SPAN></P>  w4 v8 q, Y! o. X0 ?" P) ]
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 2</SPAN></P>
8 O: |. D- m* f7 k<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 3</SPAN></P>! u2 w; Q3 S4 k% E& e. s
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 4</SPAN></P>
3 K) l3 C1 f: @0 n8 e<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 5</SPAN></P>6 }  x0 s; \* F8 ~
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 6</SPAN></P>
( F$ g+ g% V' C<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 7</SPAN></P>
9 }1 \- U) V3 ?( U3 t( g<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 8</SPAN></P>) a6 T) q3 r3 W4 \" F: I# A  ?, p
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 9</SPAN></P>9 F% ~- y2 A+ B" h! y: ?5 |
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 10</SPAN></P>2 ?0 ^1 V. ^& @6 \- K
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN></P>
% `( ?" f2 H( B4 K" Y<P class=MsoNormal><SPAN lang=EN-US>End Sub</SPAN></P>- k' D) B% m5 {6 {- j. |
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|本地广告联系: QQ:905790666 TEL:13176190456|Archiver|手机版|小黑屋|汶上信息港 ( 鲁ICP备19052200号-1 )

GMT+8, 2026-4-30 20:09

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表