Dict.CN 在线词典, 英语学习, 在线翻译

学海苦作舟,书山勤为径

留下点回忆

常用链接

统计

积分与排名

Denoise

English study

Web技术

数据压缩

一些连接

最新评论

最简单的汇编程序:缓冲区比较

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

 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

posted on 2006-08-16 21:41 笨笨 阅读(1360) 评论(4)  编辑 收藏 引用

评论

# re: 最简单的汇编程序:缓冲区比较 2006-12-27 16:08 李锦俊

我从来没用过汇编。。。听说这段代码不能跨平台,要稍作修改。  回复  更多评论   

# re: 最简单的汇编程序:缓冲区比较 2006-12-27 22:24 笨笨

那是那是,_asm只有VC才认识.呵呵  回复  更多评论   

# re: 最简单的汇编程序:缓冲区比较 2007-10-21 03:20 dc

基本上所有的平台都支持这段代码吧???  回复  更多评论   

# re: 最简单的汇编程序:缓冲区比较 2007-11-14 08:12 evan.yh

那是因为gcc用的内嵌汇编格式为AT&T格式。而且。如果我没记错的话在REP前面要加上CLD。mov edx, len做什么用?没看明白。  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理