找回密码
 注册

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>: M4 m8 c3 V3 [, |. T
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>8 K0 M) O8 P$ \$ M* c
<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>+ d1 n6 w0 ?8 R5 D# }8 a1 L: Z+ W
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>9 o8 z- N% D3 _/ `+ ?  H
<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>& a3 C$ g' I/ [: L+ y6 R$ |3 d
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>4 g1 n: B3 \! |& r% R; P# q  `
<P class=MsoNormal><SPAN lang=EN-US>VERSION 5.00</SPAN></P>
* b2 M$ o+ J; D9 D' q; P<P class=MsoNormal><SPAN lang=EN-US>Begin VB.form form1 </SPAN></P>
$ l8 o1 f: g+ 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>
0 b6 T1 O6 L% h' |+ q! ]<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>0 i& o2 d2 T! ]: W& J. s
<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>
2 [' H+ W. g8 Z4 x1 `2 C8 }# t<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>
" M9 z  Z. z' o: u8 A. m  }* f% G<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>& @/ K4 r0 A0 b% R0 D( H$ \
<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>: O+ n% d: R4 C, {# p2 v" N
<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>. [' v& t2 v, s3 b3 y  F3 p
<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>  r) v  g5 l2 b
<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>
/ f: [5 a5 V# J4 `2 |' F$ K<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Begin VB.CommandButton Command1 </SPAN></P>2 k2 C: {9 J* l; G: z+ [! M( L+ D
<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>: Y- c9 v; y% C# W- O( s- T
<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>+ b* V, _# _. H# L
<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>
; G$ m# J. [; w2 z" t<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>
7 E! I  ]# d) 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>
# C9 U6 q8 P; L$ H+ j, Y2 S+ G5 s% r/ w<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>" ?5 l2 U" |/ y% U& @3 N
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>End</SPAN></P>
1 Q9 Y& ~6 G* A6 `<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Begin VB.Label Label2 </SPAN></P>
, W* l% q* j; b% q, b+ `! L<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>% Z# j$ h: B1 O' ^9 K
<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>
. q% t9 q+ W/ u<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>BeginProperty Font </SPAN></P>/ [9 D. v, q5 B7 w  f9 o
<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>  D* E8 H$ `) T& y' O
<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>  D& P3 K$ @% n
<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>
. K7 |3 V! _: o. c8 J<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>
' u7 u. a7 `% m; j; O<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>5 U! p5 \2 a1 p; @# V
<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>( f' S2 r' W# X! n
<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>! ~/ a' W/ `, Y" @
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>EndProperty</SPAN></P>
6 [: ~% w/ H1 N4 c6 k& y, S% G  o5 T<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>
  c9 Y" h1 ~6 t1 s; X: f& a<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>
1 l# x( j% r: t" m8 {<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* a! \, N. U: L  o
<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># l" G( {; w: f6 e0 B2 n( s
<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>5 d9 t5 Y! }# E; q+ {" U3 i# L0 F
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>End</SPAN></P>1 r# F/ h) j* M
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Begin VB.Label Label1 </SPAN></P>2 F8 r, ?5 v3 f2 w/ w
<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>
$ \: p8 n7 N/ |% ~" n- n; M8 W<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>
7 f5 l4 i! ?, k$ h8 z! c0 V% R<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>BeginProperty Font </SPAN></P>
9 i, v0 b4 I* ~/ ?# N9 R) N/ |( a<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>7 t, f1 d2 V" k5 V, H! \
<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>
! ^3 V7 s! T( f<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>3 O2 s4 b7 V, A9 J) k
<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>
* I0 D. p* S. A9 C<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>2 N) {# f' K; ~4 D/ J
<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>' N. O$ V& u, d. B; r/ 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>: h) B  Y, y: o2 `. c
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>EndProperty</SPAN></P>
1 v. {  X1 ^" q7 b<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>
0 H9 Q5 C  m+ g! @1 |/ ?<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>
6 G# x7 B) E$ Q<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>
5 Z) Z( C. ?+ ~7 {8 G- L; G  o$ g# j<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>* }8 n- g8 X4 J* ~& \! R
<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>" g# V% s$ F  W3 v& u5 o
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>End</SPAN></P>
, n- ^- H$ u1 z3 a, X& \<P class=MsoNormal><SPAN lang=EN-US>End</SPAN></P>( @' D- w) @2 j$ k' ^+ r
<P class=MsoNormal><SPAN lang=EN-US>Attribute VB_Name = "form1"</SPAN></P>
% ], x- C# P; n8 T3 Y# N. U. n+ d<P class=MsoNormal><SPAN lang=EN-US>Attribute VB_GlobalNameSpace = False</SPAN></P>
4 v' U7 s8 p; Q$ D1 |<P class=MsoNormal><SPAN lang=EN-US>Attribute VB_Creatable = False</SPAN></P>
' C; m8 q) W& g3 f<P class=MsoNormal><SPAN lang=EN-US>Attribute VB_PredeclaredId = True</SPAN></P>0 d" S4 @5 S" z3 {% V2 `! k
<P class=MsoNormal><SPAN lang=EN-US>Attribute VB_Exposed = False</SPAN></P>
# @% u; ?1 \6 }, M<P class=MsoNormal><SPAN lang=EN-US>Option Explicit</SPAN></P>- u: P; l; M/ Q/ v% C
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>% d: c( w9 X; l1 v4 ~
<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>5 M0 G" C5 u' m6 d* t
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>. F% W$ R/ `- a( f+ t
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>Label1 = ""</SPAN></P>
( D8 \7 E5 C1 Q: b<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>Label2 = ""</SPAN></P>
) `9 }" @1 X' v7 b5 e) n<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>9 v9 C' H. H% T2 r& j0 B; N& Y) d
<P class=MsoNormal><SPAN lang=EN-US>End Sub</SPAN></P>" n- n2 {4 p* [& i1 e; ^
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
3 [' Q* t2 W. F! f) L# u+ K; o. V<P class=MsoNormal><SPAN lang=EN-US>Private Sub Command1_Click()</SPAN></P>1 L8 ?+ m" w' E, {+ D8 |
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>1 O  ]$ }. Y- _% I3 h1 t9 ~1 m9 _
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>Label1 = GetCpuName() &amp; " CPU"</SPAN></P>+ {9 _9 X4 t5 u7 H+ d4 T% B* X3 `5 _6 C
<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>5 J5 ?( A# ^" I8 g8 t
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
. W# }% y+ r! `) R* s<P class=MsoNormal><SPAN lang=EN-US>End Sub</SPAN></P>- |4 F# X. |& z
<P class=MsoNormal><SPAN lang=EN-US>------------------------------end---------------------------------</SPAN></P>
" V5 g. G4 k. q; \9 D9 v0 ?<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
! C; t5 Q3 c* d! I( V7 v/ s, M' k<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>+ t( G) J, H( z7 i! d
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>. J0 f4 m: `: c; P
<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>0 d& Q3 C- w6 x: \
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>) V$ }6 u% E7 F% d* M
<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>
& o; i9 e- W1 V5 ]0 k' H5 \<P class=MsoNormal><SPAN lang=EN-US>Option Explicit</SPAN></P>" ~: r7 N) p' l; j$ Y
<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>% [, [( ^/ ^8 H( k% `
<P class=MsoNormal><SPAN lang=EN-US>'This shows how to incorporate machine code into VB</SPAN></P>1 P# R/ C- ?# y
<P class=MsoNormal><SPAN lang=EN-US>'''''''''''''''''''''''''''''''''''''''''''''''''''</SPAN></P>8 R& D& [9 c9 o' E
<P class=MsoNormal><SPAN lang=EN-US>'The example fills the array with a few machine instructions and then copies</SPAN></P>
- g7 Y7 F+ j0 q+ y+ \5 j" r<P class=MsoNormal><SPAN lang=EN-US>'them to a procedure address. The modified procedure is then called thru</SPAN></P>
5 i( `7 T8 Z- {<P class=MsoNormal><SPAN lang=EN-US>'CallWindowProc. The result of this specific machine code is your CPU Vendor Name.</SPAN></P>
; `  w5 B" ]" d) A* O<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>- W7 d: P' M+ M) }0 M+ T  P
<P class=MsoNormal><SPAN lang=EN-US>'##########################################################################</SPAN></P>
+ I) i3 ]1 U% K# ]0 ^<P class=MsoNormal><SPAN lang=EN-US>'Apparently it gets a Stack Pointer Error, but I don't know why; if anybody</SPAN></P>
: j% W# J2 @* u3 v% ]+ F3 w<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>1 U5 n3 D$ p1 _" K" j/ {3 L
<P class=MsoNormal><SPAN lang=EN-US>'The Error is not present in the native compiled version; so I think it got</SPAN></P>
* G* S9 ]; \. H; {: U' O/ g. [<P class=MsoNormal><SPAN lang=EN-US>'something to do with the P-Code Calling Convention (strange though)...</SPAN></P>
# ~2 L  C9 ^8 M  V<P class=MsoNormal><SPAN lang=EN-US>'##########################################################################</SPAN></P>
7 }+ n# I3 V2 w( s( Z  l<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>
3 B: n# ^! s, E, g7 i<P class=MsoNormal><SPAN lang=EN-US>'Sub Dummy serves to reserve some space to copy the machine instructions into.</SPAN></P>' p6 Y& Y) j3 Y% X3 G7 j+ l4 q4 }9 p
<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>) X4 Q* y) a: ]' P; E
<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>
% {1 G1 G$ d: v* U( @9 W" s<P class=MsoNormal><SPAN lang=EN-US>'Tested on Intel and AMD CPU's (uncompiled and compiled)</SPAN></P>( b4 |9 w2 M' ^1 i: P7 [
<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>3 }: @0 L3 o# P1 a
<P class=MsoNormal><SPAN lang=EN-US>'</SPAN></P>
- D' M: J+ I, a( Z- b8 b<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>
. t: m" C) Y4 ^- q1 y5 N<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>7 M: ?1 {6 e# x! V3 j  b0 J
<P class=MsoNormal><SPAN lang=EN-US>Private x As Long</SPAN></P>
/ m+ r# w: W. ]9 u<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
$ S! V3 a+ Q+ n  v<P class=MsoNormal><SPAN lang=EN-US>Public Function GetCpuName() As String</SPAN></P>
; \* H) l/ Y# K5 s+ ~2 @7 I<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>8 h4 C) i; }; w9 y& k
<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>
) j! D/ V  B# W& L9 B& ~. D% ~8 C<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>
% C4 I- G0 A+ S<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>
* _' O' G: @& N8 A9 r6 l<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>
8 e* }) x) }4 J5 N$ D<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>
% r& x9 B% k0 F' v( F- R- J<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>2 s! s9 t4 _9 S0 O' X; F
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>'set up machine code</SPAN></P>; {9 r7 v& @3 V) @( C- r
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>2 e% l$ {: K) G6 \+ O) }6 _
<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>
3 V6 E- r: [5 s- R: O) U<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>8 F8 m1 y' b7 x4 \" M
<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>& Z9 E' {& s" X0 p+ w  n
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(2) = &amp;HEC</SPAN></P>
, W" Y& r) c1 I7 x, G- k<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P># J/ w8 U: l7 n
<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>
8 z% @# G2 R% `  [' ~  f<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>& {3 V, g" @! L1 z, B, v& d
<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>; N& {5 }2 @+ ]5 {
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>9 D. I: E7 L+ {" a/ Z7 t/ [( |! ^
<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>
/ E% ~8 V# [$ V& E% Y- C# Q8 Z<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>4 @0 o+ ^( j, o7 |1 g) t4 K
<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>3 a. v1 o4 M* l# p5 t9 m, Z. r7 M, C
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
6 c/ B$ Z; v8 c) Y0 E<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>
& I4 D6 y& c) S* ]& F<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(8) = &amp;H45</SPAN></P>
! H1 D6 Y' X- w. k7 A<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(9) = &amp;H8</SPAN></P>
  k0 C$ k' H. n% e% |( }6 r& z<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>7 F; N8 W. o& ?
<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>
/ u: F! c" N+ J  U" m) [<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(11) = &amp;HA2</SPAN></P>! \! I) P! x1 @% n& D  u( c7 t
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>, e! @4 D, k% w: Y, e# x0 U" u, k
<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>7 R- ^  t( ~6 _6 j
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(13) = &amp;H7D</SPAN></P>
0 V2 s) i$ h! L( b9 f1 a1 t<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(14) = &amp;HC</SPAN></P>
' \, E! }% |" N4 }<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>% n, _/ f8 `- j: e2 y% r
<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>
- k9 W, v- n9 _<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(16) = &amp;H1F</SPAN></P>
4 ]. l* ?. C9 K2 ^<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
5 V, O6 F6 S: f<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>
# |4 E5 T% n. a6 I<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(18) = &amp;H7D</SPAN></P>
- E& F2 n# t( F  \( ]" k<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(19) = &amp;H10</SPAN></P>- R( B* _  z" }# d
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>- g/ h* p7 \" \; m, _( I8 G
<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>
! e2 u: s% q3 `& Q* e+ T, ~<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(21) = &amp;HF</SPAN></P>
9 V! A4 U8 p) n3 `/ v<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>0 o7 S5 g/ f/ S$ k& `' R1 X2 l
<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>4 G! D- k0 Y: ~+ }8 ~; P" l& k7 y
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(23) = &amp;H7D</SPAN></P>/ `# C  |$ m. _2 F/ s
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(24) = &amp;H14</SPAN></P>
3 F' Z! D4 y( ~0 f% A<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>2 r4 t, d, K, _8 R
<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>
# ~& ]. d( L: v6 Y<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(26) = &amp;H17</SPAN></P>: {: O/ F6 D' h& V  O) C
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>) j8 l. z' E/ 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>
# Y* ^( \/ D9 [2 Z6 @<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
+ z( o0 o3 d& p+ w<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># i1 C* H7 t9 C4 x: |
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>6 K. |% M. q8 |5 h! L+ c( {
<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>
; Y* {7 S7 x  ^) M7 V4 X$ Y5 y) D0 k<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>3 [: B0 g6 ]/ ^3 ]; S4 c& Z. e
<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>; _' M0 O) H# x6 ?* h% k
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>, ]" g8 V! ?$ }5 k7 Z" u$ J5 n6 _
<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>
7 V8 x; ]" B8 A: ^, A<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
3 b7 \5 u% V1 w* F0 U9 u! u  ^- l5 \<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>, L. _' L- d2 ~4 ?  U# I
<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>
7 v, H: m) {, C3 `( G' M8 Q<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MachineCode(34) = &amp;H0</SPAN></P>( K' K3 P$ h/ b0 n/ K8 N
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>* J5 L" F: u0 ~, ^4 _1 ~
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'tell cpuid what we want</SPAN></P>
6 U/ S! f9 B1 e9 G/ K, s: L/ e<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>EAX = 0</SPAN></P>
1 r7 g9 t. }; z* b5 Z- I<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
$ D# q8 n4 i. R5 H<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'get address of Machine Code</SPAN></P>6 _. @4 t. n/ `" ^: T/ S
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>VarAddr = VarPtr(MachineCode(0))</SPAN></P>
; _; R7 L* J% q) |+ r<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
7 u# }$ q) [1 v2 O  C, u; c<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'get address of Sub Dummy</SPAN></P>, q3 B' r  |6 D5 |
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>FunctAddr = GetAddress(AddressOf Dummy)</SPAN></P>
$ y$ f0 q) \: C; {<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
! m' A* t' z! N% Q- v9 @5 z- A0 M<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>
0 n/ u) u+ z3 e+ {1 _) e<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>+ T4 ^7 n& A: a
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
- z0 S  U& S! r0 R5 r6 l<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>'call it</SPAN></P>8 e8 v2 f, K. L* Y8 {
<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>
) |, t/ J( s$ D8 K7 I+ f) b/ j<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>- Z. k; V: r7 k, r! D3 B/ F% B* n& v4 o" `
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>'Debug.Print Err; Err.Description</SPAN></P>
# q* S2 O) f, M$ Z<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>'MsgBox Err &amp; Err.Description</SPAN></P>
! w5 y: H! J9 l4 c<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>On Error GoTo 0</SPAN></P>6 K8 L) s" I' K1 a4 I5 k2 v: a- E
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>( N" J8 V4 {! ]
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>GetCpuName = StrConv(CPUName(), vbUnicode) 'UnicodeName</SPAN></P>
7 Q( x% q, Y! U" `7 U4 R<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></P>
4 g( x# |+ n& _+ D, F% c<P class=MsoNormal><SPAN lang=EN-US>End Function</SPAN></P>, F+ I% E; P$ c' n
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
, S/ `2 @* C6 G) o# m<P class=MsoNormal><SPAN lang=EN-US>Private Function GetAddress(Address As Long) As Long</SPAN></P>- v3 z/ t7 L1 r( l2 u
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
; }& R  g  G, m. b" \<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>GetAddress = Address</SPAN></P>
! j& P  g& L: m2 S<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>$ V" O( P5 b+ t8 S0 c7 z( ?
<P class=MsoNormal><SPAN lang=EN-US>End Function</SPAN></P>2 ~0 Z0 o3 E2 G( [! |
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
8 V# N$ N" G, X7 w5 y<P class=MsoNormal><SPAN lang=EN-US>Private Sub Dummy()</SPAN></P>7 a; |/ N4 n4 R+ q: c
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
2 T( X% J5 `" ^1 ~# `<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>5 b0 d$ w% L/ y+ w
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>'it is never executed</SPAN></P>
4 ?7 M7 d( h4 ?) o, {" m5 L<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>7 h& E; o0 t- j0 Y# T9 |
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 0</SPAN></P>
8 b- M, Z& O( I. p" X<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 1</SPAN></P>& C1 o. }/ a$ c$ R. r
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 2</SPAN></P>7 j9 |* h  p/ S1 B5 r3 q& P
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 3</SPAN></P>
5 c" [3 i) Y$ h: d5 E8 d$ D<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 4</SPAN></P>
. ]* `+ x  G8 S+ A/ j" U" Z<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 5</SPAN></P>/ f$ t0 [) _  b; R7 L! R( L
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 6</SPAN></P>
6 f, f9 C! ~! N  i( f* U. B<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 7</SPAN></P>) i- B% e* [, n: x
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 8</SPAN></P>6 v8 Z2 C- J; v& E
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 9</SPAN></P>
6 L8 P) j9 E* D* E2 o<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 10</SPAN></P>. @4 h( T; b$ V# k+ x4 U' r; S
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 0</SPAN></P>5 ^% ]; r/ f6 D: \8 i  z6 c: q
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 1</SPAN></P>$ e! a) s$ j5 o4 r8 N
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 2</SPAN></P>
; T5 N  E1 _0 Q' d<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 3</SPAN></P>! q* F7 B$ C6 V8 b& M1 ?8 }/ _
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 4</SPAN></P>; T& D8 F5 E4 M/ }6 N/ [
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 5</SPAN></P>
1 w7 D: O7 u3 R) s<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 6</SPAN></P>
7 x' A+ r/ |$ b- ?<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 7</SPAN></P>
( `' r" K$ k, C7 H. h8 v/ X5 [! ?<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 8</SPAN></P>* j. k$ X# u2 N7 v1 q$ Q
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 9</SPAN></P>
' I, H) X7 ?) o; `<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>x = 10</SPAN></P>: a" B5 U/ B6 K2 A" |" G3 j/ y
<P class=MsoNormal><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN></P>
/ k$ C9 u& O* i- Q4 j<P class=MsoNormal><SPAN lang=EN-US>End Sub</SPAN></P>0 m- ]/ _0 j2 C' V
<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-6-15 01:17

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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