考试网 >> IT认证 >> 等级 >> 等级动态 >> 汇编语言教程之七

汇编语言教程之七

发布时间:2006-07-25 11:56     点击:
分页:上一页  1 2 3 4 5 6 7 [8] 9 10  下一页



编译器在许多时候能够作出相当让人满意的结果。考虑以下的代码:



int a=0;

for(

int i=1; i<10; i++)

 

for(

int j=1; j<100; j++){

    a += (i*j);

  }



让我们把它变为某种形式的中间代码:



00: 0 -> a

01: 1 -> i

02: 1 -> j

03: i*j -> t

04: a+t -> a

05: j+1 -> j

06:

evaluate j < 100

07:

TRUE?

goto 03

08: i+1 -> i

09:

evaluate i < 10

10:

TRUE?

goto 02

11: [继续执行程序的其余部分]



程序中执行强度最大的无疑是03到05这一段,涉及的需要写入的变量包括a, j;需要读出的变量是i。不过,最终的编译结果大大出乎我们的意料。下面是某种优化模式下Visual C++ 6.0编译器生成的代码(我做了一些修改):



xor eax, eax              

; a=0(eax: a)

mov edx, 1                
分页:上一页  1 2 3 4 5 6 7 [8] 9 10  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有