惭愧,到今天就只会这么简单的汇编程序,汇编语言要猛补一下。记录一下我第一个简单的汇编程序吧。
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

2

3



4



5



6

7

8



9

10

11



12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28



29

30

31

32

33
