组合语言与C语言的混合编译实验.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

***********掌握ARMC語言編譯掌握ARM組合語言與C語言的混合編譯實驗目的:用組合語言實驗LED燈的閃爍實驗內容:DMA2440XP教學平台ADS1.2試用版內建開發環境和除錯軟體USB連接線、串列連接線、電源實驗設備:組合語言與C語言的混合編譯實驗1.1ARM程式呼叫ATPCS(ARM)ARM編譯中不同語言的程式只要遵守ATPCS規則就可實現不同語言間的互相呼叫。ATPCS是一系列用於規定應用程式之間互相呼叫的基本規則,這個規則包括:支援資料限制檢查支援唯讀位置無關(ROPI)支援可讀/寫段位置無關(RWPI)支援ARM程式和Thumb程式的混合使用處理浮點運算使用以上規定的ATPCS規則時,應用程式必須遵守如下:程式編寫遵守ATPCS變數傳遞以中間暫存器和資料完成組合語言器使用-apcs開關選項關於其他ATPCS規則,用戶可以參考ARM處理器相關書籍或登錄ARM公司網站。1.2組合語言與C語言的互相呼叫組合語言切換到C語言的方法C語言中定義的函數名在組合語言中可作為標籤使用,因此,在組合語言中可使用程式分支指令直接轉移到C語言中定義的標籤(函數)中。下面程式實現從組合語言跳躍到C語言的Main函數中。組合語言程式:0102組合語言中函數的實現程式只要遵守ATPCS相對應規則,就可以使用不同的程式編寫程式。程式間的互相呼叫最主要的是解決參數傳遞問題。應用程式之間使用中間暫存器及資料暫存器來傳遞參數,其中,第一個到第四個參數使用R0-R3,多於四個參數的使用資料暫存器進行傳遞。這樣,接收參數的應用程式必須知道參數的個數。但是,在應用程式被呼叫時,一般無從知道所傳遞參數的個數。不同語言編寫的應用程式在呼叫時可以自定義參數傳遞的約定,使用具有一定意義的形式來傳遞,可以很好地解決參數個數的問題。常用的方法是把第一個或最後一個參數作為參數個數(包括個數本身)傳遞給應用程式。下面的程式就是用組合語言寫的一個簡單函數:intasse_add(intx, inty);BLasse_add上面的組合語言函數相當於如下聲明的C語言函數:在組合語言中可以使用:指令呼叫該函數。輸入時,r0為x參數,r1為y參數;輸出r0。該函數實現的功能很簡單,返回參數x與y的和。以上面的asse_add函數為例,在C語言中聲明該函數在其他檔中實現:01externintasse_add(intx,inty);02然後就可像呼叫C函數一樣呼叫該函數:x=asse_add(10,20)。03C語言呼叫組合語言檔的函數C語言中內嵌組合語言ARM的編譯器支援內嵌組合語言。如下示例為C語言中採用內嵌組合語言的方式實現asse_add相同的功能:010203040506新建一個工程名為ASM_c,並新建原始檔案、輸入程式,設置好工程編譯產生映像檔。硬體連接:用串列線將PC的COM1與實驗箱的UART1連起來,再用USB連接線(A-B)將PC的USBHOST介面與實驗箱的USBDevice介面連起來,最後插上12V電源。下載、除錯並執行:該步驟操作過程與手冊5-3.2小節的步驟是類似的。結合實驗內容和原理,觀察實驗現象,實驗結果應該是D2燈不停的閃爍。完成實驗練習題。1.3實驗步驟***********

文档评论(0)

SYWL2019 + 关注
官方认证
文档贡献者

权威、专业、丰富

认证主体四川尚阅网络信息科技有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510100MA6716HC2Y

1亿VIP精品文档

相关文档