慚愧,到今天就只會這么簡單的匯編程序,匯編語言要猛補一下。記錄一下我第一個簡單的匯編程序吧。
?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