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版本,新的:
- 在支持位字段已加入
- 在此版本改進標準的符合性,以及額外的警告發出的可疑代碼。
- 在該庫調整為更快的速度和更小的尺寸。
- 在編譯器在很多情況下會產生更快的代碼,通常沒有太多的增加代碼的大小。
評論沒有發現