cc65是一个完整的交叉开发包6502系统,包括了强大的宏汇编,C编译器,链接器,图书管理员和其他一些工具。 cc65是基于最初改编为Atari 8位计算机由约翰·邓宁R. C编译器。
原来的C编译器是一个小C的后代,但有几个扩展,原先的一些小C编译器的限制都没有了。原始版权允许自由再分配,包括来源,即使按照开放源代码定义,将没有资格作为开源软件。
原来的雅达利编译器可从http://www.umich.edu/~archive/atari/8bit/Languages/Cc65/。完整的软件包包括编译器,汇编,图书馆员,链接器和C库为Atari的。有在网上一些包,声称要适应作为一个交叉编译的DOS或Unix,但不能让他们正常工作。
因为我想一个C编译器,我的CBM的机器,我把雅达利编译器,并开始重写。直到今天,我已经改写了编译器的大部分地区,所有的图书馆,完全取代了汇编器,链接器和库管理,并增加了前端,以简化使用。所有的改变已经完成与便携性于心,所以移植到新的体系结构6502应该是很容易的。
编译器几乎是ISO C兼容的,所以你应该能够转化多种渠道从其他系统。
可能有其他的目标系统相关的限制。一个例子是文件I / O,这是不是在所有的平台上实现。这不是技术上的限制(如上面提到的东西),但不只是意味着,没有人关心,足以编写实际的代码。
编译器只是在这个包中可用的工具之一。汇编器套件(汇编器,链接器,归档)是一个完整的开发环境,为自己,也可以用来写任何6502机器程序。 C代码和汇编代码可以一起使用,并且可以相互调用。
汇编是一通宏汇编程序,并能够为6502,该65SC02和65SC816输出代码。它有很多漂亮的功能,比如包含文件,条件汇编,宏嵌套的词汇水平(也就是本地的符号),等等。汇编器创建一个包含重定位代码的目标文件。这些文件必须通过连接运行,以创建最终的方案。
连接体有一个灵活的输出格式,并且能够支持ROMable代码(不同的负载和用于数据运行地址),存入银行系统(段可以共享相同的运行地址),与多个ROM中,无限的链段的系统,一个以上的BSS段和很多其他的东西。
归档器用于创建包含对象文件的库。这简化了代码管理。链接器将只提取那些确实需要一个库模块。
到simplifiy用途,也有一个前端,包含在cc65包的工具。前端被命名为CL65。它知道如何从C文件,汇编文件,目标文件和库列表构建二进制文件。对于较小的项目,CL65效用只有一个调用需要建立从多个源文件和库二进制
特点:
- 在编译器允许开始//单行注释。此功能是严格ANSI模式下禁用。
- 在编译器允许在参数列表中未命名的参数。编译器不会发出有关不具有名称未使用的参数警告。此功能是严格ANSI模式下禁用。
- 在编译器有需要的特殊功能,一些额外的关键字。严格ANSI模式下,额外的关键字开始两个下划线。
- 在挥发性修饰符无效。
- 在该数据类型float和double都没有。
- 在不支持位字段的编译器。
- 在C函数可能不会返回结构和结构可能不被通过为值参数。结构分配是可能的。
- 在上有局部变量的大小一定的局限性。并非所有的操作都可以,如果局部变量的大小超过256字节。
- 在C库的一部分是只可用于快速调用调用约定(见下文)。这意味着,你可能不能混用指向这些函数的指针,以用户编写的功能。
什么在此版本中是新的:
- 在由C产生的一些宏观问题和困难与不正确的代码编译器已得到修复。
- 在包括转换函数void指针和运行部门程序。
- 在汇编也有一些宏观问题和路线大于256字节的问题。
- 在有问题的80列模式和conio滚动的C128库。
- 在雅达利库现在拥有POSIX目录例程。
- 在已经有几个文档更改,修正和改进。
什么是2.13.0版本,新的:
- 在支持位字段已加入
- 在此版本改进标准的符合性,以及额外的警告发出的可疑代码。
- 在该库调整为更快的速度和更小的尺寸。
- 在编译器在很多情况下会产生更快的代码,通常没有太多的增加代码的大小。
评论没有发现