close
為了使單獨編譯的C語言程式和組譯器之間能够相互呼叫,必須為子程式之間的呼叫規定一定的規則.ATPCS就是ARM程式和THUMB程式中子程式呼叫的基本規則...
一.ATPCS簡介...
ATPCS規定了一些子程式之間呼叫的基本規則.這些基本規則含括子程式呼叫過程中暫存器的使用規則,資料堆疊的使用規則,引數的傳遞規則.為適應一些特定的需要,對這些基本的呼叫規則進行一些修改得到幾種不同的子程式呼叫規則,這些特定的呼叫規則含括:
支援資料堆疊限制檢查的ATPCS. 支援唯讀段位置無關的ATPCS. 支援可讀寫段位置無關的ATPCS. 支援ARM程式和THUMB程式混合使用的ATPCS. 處理浮點運算的ATPCS...
有呼叫關係的所有子程式必須遵守同一種ATPCS. 編譯器或者彙編器在ELF格式的目標檔案中設定相應的屬性,識別用户選取的ATPCS類別.對應不同類別的ATPCS規則,有相應的C語言程式庫,連線器根據用户指定的ATPCS類別連線相應的C語言程式庫...
使用ADS的C語言編譯器編譯的C語言子程式滿足用户指定的ATPCS類別. 而對于組合語言程式來説,完全要依賴用户來保證各子程式滿足選取的ATPCS類別. 具體來説,組合語言子程式必須滿足下面三個條件: 在子程式編寫時必須遵守相應的ATPCS規則; 資料堆疊的使用要遵守ATPCS規則; 在彙編編譯器中使用-apcs選項...
全站熱搜
留言列表