自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

转载 LCC编译器的源程序分析(47)计算需要使用栈大小

计算栈的大小,是通过后端接口的代码来完成计算的。栈的大小,主要就是局部变量、临时变量、调用参数和返回值等使用的字节大小,如果变量可以放到寄存器,就不需加到栈的大小里。上面已经看了下面的代码:#044 case Blockbeg: #045 {#046 Symbol *p = cp-&gt...

2007-06-28 22:55:00 141

转载 LCC编译器的源程序分析(46)计算需要使用栈大小

从目标代码里,可以看到下面一行:#009sub esp, 16在这行里是保留栈的大小,值为16。但16个字节是怎么样计算出来的呢?下面就来分析LCC的代码,看它是怎么样计算的。它是在函数gencode里进行计算的,它的代码如下:#001void gencode(Symbol caller[], Symbol callee[]) #002{#003 Cod...

2007-06-27 21:56:00 124

转载 LCC编译器的源程序分析(45)函数代码入口和出口的代码生成

由于C语言可以动态地分配局部变量,因此它的运行环境都是基于栈式的分配来实现的,所以在函数的入口就会生成一段分配栈的代码,如下:#002[section .text]#003$main:#004push ebx#005push esi#006push edi#007 push ebp#008mov ebp, esp#009sub esp, 1...

2007-06-23 21:17:00 181

转载 LCC编译器的源程序分析(44)函数名称的代码生成

当把所有的源程序生成DAG表示后,就进入了编译器的最后处理阶段,LCC是把DAG生成汇编的目标代码。在这一阶段,编译器为源程序定义和使用的变量选择存储单元,并把中间指令翻译成完成相同任务的汇编代码指令序列。在代码生成里,需要处理的问题是存储管理、指令选择、寄存器分配、计算次序等等。在第一节里就已经看到了汇编代码生成,函数的名称生成如下:#001[global $main]那...

2007-06-22 21:42:00 117

转载 LCC编译器的源程序分析(43)赋值表达式的有向无环图

由于INDIR树与ADDRL树的类型相同,所以已经转换为ADDRL树,直接对ADDRL树进行进访问了,下面就是在函数listnodes里处理赋值表达式的ADDRL树,它的代码如下:#412case ADDRL: #413 { #414 assert(tlab == 0 && flab == 0);#415...

2007-06-21 23:08:00 109

转载 LCC编译器的源程序分析(42)赋值表达式的有向无环图

上一次说到赋值表达式转换为有向无环图的函数listnodes,下面继续来分析这个函数代码。当赋值树处理时,就运行下面的分支来处理:#256case ASGN:#257 { #258 assert(tlab == 0 && flab == 0);#259 if (tp-&...

2007-06-20 23:13:00 96

转载 LCC编译器的源程序分析(41)赋值表达式的有向无环图

前面已经介绍怎么样把赋值表达式变换到树的中间表示,接着下来编译器要做的事情就是怎么样把树变换成有向无环图。也许你会问为什么要把树变换成有向无环图,而不是直接生成最终代码呢?其实,学习过数据结构就很清楚有向无环图的应用,编译器里就是利用有向无环图的特性来进行局部代码优化的,最主要的优化就是删除公共表达式。下面就来分析LCC从树到有向无环图的实现代码。上面函数dcllocal里调用转换函...

2007-06-19 23:55:00 115

转载 LCC编译器的源程序分析(40)赋值表达式树

前面分析了表达式的语法,也分析了语句的语法,但它们最终的目的就是生成合适的中间表示,在LCC里是采用树作为中间表示的。现在就来分析语句生成什么样的树表示,下面的语句是来自例子里,如下:int nTest1 = 1;这个语句是声明了一个局部变量nTest1,并且给nTest1赋值为1。LCC编译器要把它变换到分析树的表示,这样才利于后面的分析和使用。它的分析树如下: 左子...

2007-06-18 22:26:00 127

转载 在VC2005里使用STLPORT

听说STLPORT的性能不错,心动不如行动,立即就上网下载STLPORT下来使用,先到下面的网址下载源程序:http://nchc.dl.sourceforge.net/sourceforge/stlport/STLport-5.1.3.zip这个压缩包不是很大,才1.6M,很轻松地就下载完成了。接着下来就是解压,比如我解压到目录:E:/software/LIB/STLp...

2007-06-18 13:56:00 101

转载 LCC编译器的源程序分析(39)goto语句

在现代设计的程序里,很少再用到goto语句了。虽然使用goto语句是比较高效,但它使程序也会得非常难懂,非常难维护,比较容易出错,所以很少使用goto语句的。goto语句为无条件跳转语句,它的一般形式为:goto 标号;在LCC里的是用下面的代码来处理:#001case GOTO: #002 walk(NULL, 0, 0);#003...

2007-06-17 11:23:00 139

转载 LCC编译器的源程序分析(38)return语句

在实现中,程序其实就是处理数据,然后输出处理过的结果,在C语句里最直接的方式就是函数的返回值。比如求两个数据的最大值,就可以通过函数返回值来返回最大值。而函数的返回值是通过函数中的return语句获得的。return语句后面是一个表达式,需要调用表达式函数来处理。下面来分析LCC里的代码:#001case RETURN:#002 {#003...

2007-06-16 20:07:00 128

转载 LCC编译器的源程序分析(37)default语句

default语句是使用在switch语句的复合语句里,它是所有其它分支不能处理时的分支处理。在LCC里是如下处理的:#001case DEFAULT:#002 if (swp == NULL)#003 error("illegal default label/n");#004 else if (swp...

2007-06-15 21:28:00 99

转载 LCC编译器的源程序分析(36)case语句

case语句是使用在switch语句之中,它实现了选择一个分支执行。当表达式的值与case后面的常量表达式的值相等时,就执行此case语句后面的语句。LCC处理这个语句的代码如下:#001case CASE: #002 {#003 int lab = genlabel(1);#004 if ...

2007-06-14 21:35:00 153

转载 LCC编译器的源程序分析(35)switch语句

switch语句是多分支选择语句,主要方便多个选择的情况使用,当然也可以使用if语句来实现,但嵌套的if语句过多会使用程序的可读性降低。switch(表达式){case 常量表达式1: 语句1;case 常量表达式2: 语句2;…case 常量表达式n: 语句n;default: 语句n...

2007-06-13 19:04:00 140

转载 LCC编译器的源程序分析(34)continue语句

continue语句的作用是跳过循环体中后面尚未执行的语句,接着进行下一次是否执行循环的判断。比如下面的例子:while(表达式1){ … if(表达式2)continue; …}下面就来仔细地分析LCC里处理continue语句的源程序:#001case CONTINUE: #002 ...

2007-06-12 21:20:00 97

转载 Firefox 本地调试提示用户密码的解决方法

Firefox 本地调试提示用户密码的解决方法我们用IIS + Firefox调试的时候总是提示用户名密码,用任何用户名密码都解决不了而解决方法其实很简单在firefox地址栏填about:config,进入配置页面找到 network.automatic-ntlm-auth.trusted-uris然后双击,填入localhost。 这样就OK了http:/...

2007-06-10 18:09:00 168

转载 该死的垃圾下载点

今天心情不好,想把一个很老的游戏下载下来玩一下,在baidu和google搜索中花费了半个小时,找到的“下载站点”是非常之多。但是一些网站根本就没有看到可以下载的链接。或者是广告位置就是下载。点击后也没有下载地址出来。还有一些到是比较醒目的下载地址,也可以访问,但是大多数是无法下载(FLASHGET)或者可以下载却是一个数百K到几M的rar或者exe文件。明显不是我要的游戏。...

2007-06-07 20:45:00 55

转载 一些特效,不断更新

凹陷文字<div style="width:300px;padding:20px;overflow:hidden;word-wrap:break-word;word-break:break:all; font-size:12px; line-height:18px; background-color:#eeeeee;"><font disabled>怎么样...

2007-06-07 07:09:00 87

转载 AJAX注册检查asp程序

截图http://download1.csdn.net/down3/20070606/06132155974.jpg注册页面<link href="inc/reg_css.css" rel="stylesheet" type="text/css"><script src="Functions.js" language="JavaScript"></s...

2007-06-06 13:22:00 69

转载 删除冗余文件

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!--#include file="Conndb.asp"--><%Sub DelSpilthFile(Table,tField,FilePath) '***********************************************...

2007-06-05 16:50:00 441

转载 IFRAME自适应高度

测试可以使用<iframe border=1 name="hj" id="hj" marginwidth=0 framespacing=0 marginheight=0 src="order_check/links.asp" frameborder=0 noResize width=100% scrolling=no vspale="0" bordercolor=...

2007-06-03 14:06:00 66

转载 缩略图,大图,同页显示

<SCRIPT language=JavaScript type=text/javascript>function GetObj(objName){if(document.getElementById){return eval('document.getElementById("' + objName + '")');}else{return eval('...

2007-06-03 09:53:00 120

转载 一个二级树形菜单,初始显示为全部展开,适用于分类较少的情况。

<SCRIPT language=javascript1.2>function showsubmenu(sid){whichEl = eval("submenu" + sid);if (whichEl.style.display == "none"){eval("submenu" + sid + ".style.display=/"/";");}else{eval("su...

2007-06-03 09:29:00 245

转载 自动播放图片,可以调整速度。

效果图片如上,代码很长。如下<!--#include file="inc/conn.asp"--><link href="inc/tanxiaofeng.css" rel="stylesheet" type="text/css"><%sqlSearch = "Select * From product"sqlSearch=sqlSear...

2007-06-02 22:06:00 264

转载 糟糕,好像对什么都没兴趣了

以前吧,遇到喜欢的电视可以看几天,不过这样的电视是比较少的,现在甚至连一部2小时的电影都没有心情看完。不是草草的看十分钟就认为不好看关了,就是不断的快进。另外一个之前很喜欢的游戏,最近发现也没什么兴趣了,也许是在等待仙剑4的关系吧。不过也许到时候也没兴趣去玩也不一定。转载于:https://www.cnblogs.com/ajuanabc/archive/2007/06/01/...

2007-06-01 00:33:00 68

转载 整理了一下以后需要用的软件

Visual Infinite Menus 各种下拉,侧拉菜单制作制作漂亮的CSS菜单利器Infinite Menus及其破解 分类:web技术前一阵子从网上看到了一个非常好的制作CSS菜单的工具:Infinite Menus。完全可视化界面,制作出来的菜单那叫精美……下载地址&效果预览:http://www.opencube.com/download.asp但软件是收费...

2007-06-01 00:13:00 88

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除