惭愧,到今天就只会这么简单的汇编程序,汇编语言要猛补一下。记录一下我第一个简单的汇编程序吧。
1
#include
<
windows.h
>
2
3
int
a[]
=
{
1
,
2
,
3
,
4
,
5
,
6
}
;
4
int
b[]
=
{
2
,
2
,
3
,
4
,
5
,
6
}
;
5
int
c[]
=
{
2
,
2
,
3
,
4
,
5
,
6
}
;
6
7
BOOL Compare(
int
*
a,
int
*
b,
int
len)
8
{
9
BOOL bRet
=
FALSE;
10
__asm
11
{
12
MOV ECX, len
//
将a的长度放到ECX中
13
MOV EDX, len
//
将b的长度放到EDX中
14
MOV ESI, a
//
将a指针的值放到ESI中
15
MOV EDI, b
//
将b指针的值放到EDI中
16
REP CMPSD
//
按4个字节来比较ESI和EDI中的值,长度在ECX和EDX中给出
17
JNZ SETFLAG
//
如果不相等条SETFLAG
18
MOV bRet, TRUE
//
相等就设置bRet为TRUE
19
JMP EXITREG
//
退出
20
SETFLAG:
21
MOV bRet, FALSE
//
不相等
22
EXITREG:
23
}
24
return
bRet;
25
}
26
27
int
main(
int
argc,
char
*
argv[])
28
{
29
BOOL bRet
=
Compare(a,b,
6
);
30
bRet
=
Compare(b,c,
6
);
31
return
0
;
32
}
33