《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > C語言與匯編語言混合編程

C語言與匯編語言混合編程

2017-06-22
關鍵詞: 匯編語言

在嵌入式程序設計中,C語言編程和ARM匯編語言編程都是必需的,在某些情況下,在某些情況下,還需要C語言與匯編語言的混合編程。靈活地運用C語言和匯編語言之間的關系進行嵌入式編程有利于對嵌入式以及相關模塊的編程開發。在需要C語言和匯編語言混合編程時,如果匯編代碼比較簡單,則可直接利用內嵌匯編倆進行混合編程。如果匯編代碼比較復雜,則可將匯編語言比較簡單,則可直接分別以文件的形式加到一個工程里,通過ATPCS來完成匯編語言程序與C語言程序之間的調用。

1.ATPCS介紹

ATPCS是ARM程序和Thumb程序中子程序調用的基本規則,目的是為了使單獨編譯的C語言程序和匯編語言程序之間能夠相互調用。這些基本規則包括子程序調用過程中寄存器的使用規則、數據棧的使用規則和參數的傳遞規則。

1.       寄存器的使用規則

寄存器的使用必須滿足下面的規則:

子程序間通過寄存器R0~R3來傳遞參數,這時,寄存器R0~R3可記作A1~A4.被調用的子程序在返回前無須恢復寄存器R0~R3的內容。

在子程序中,使用寄存器R4~R11來保存局部變量。這時,寄存器R4~R11可記作V1~V8。如果在子程序中使用了寄存器V1~V8中的某些寄存器,則子程序進入時都必須保存這些寄存器的值,在返回前必須恢復這些寄存器的值;對于子程序中沒有用到的寄存器,則不必進行這些操作。在Thumb程序中,通常只有使用寄存器R4~R7來保存局部變量。

寄存器R12用作子程序間的scatch寄存器,記作IP。在子程序間的鏈接代碼段中常有這種使用規則。

寄存器R13用作數據棧指針,記作SP。在子程序中寄存器R13不能用作其他用途。寄存器SP在進入子程序時的值和退出子程序時的值必須相等。

寄存器R14稱為鏈接寄存器,記作LR。它用作保存子程序的返回地址。如果在子程序中保存了返回地址,則寄存器R14可用作其他用途。

寄存器R15是程序計數器,記作PC。它不能用作其他用途。



本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 日韩亚洲av无码一区二区不卡| 翁与小莹浴室欢爱51章| 女人18片毛片60分钟| 久久这里只精品99re免费| 激性欧美激情在线aa| 四虎影院的网址| 精品久久久久久婷婷| 天堂а√中文最新版在线| 久久一区二区精品综合| 欧美一级看片免费观看视频在线| 免费a级试看片| 色欲狠狠躁天天躁无码中文字幕 | 婷婷啪啪婷婷啪啪| 久久精品人妻中文系列| 欧美日韩一区二区不卡三区| 免费看黄色片子| 色国产精品一区在线观看| 国产日产久久高清欧美一区| 97精品一区二区视频在线观看| 成人AAA片一区国产精品| 久久精品中文字幕久久| 欧美性色欧美A在线图片| 人妻少妇乱子伦精品| 翁止熄痒禁伦短文合集免费视频| 国产成人愉拍精品| 2019国产麻豆剧传媒视| 奇米影视7777狠狠狠狠色| 中文字幕伊人久久网| 日韩av无码一区二区三区| 亚洲乳大丰满中文字幕| 永久免费无内鬼放心开车| 刘伯温致力打造火热全网| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产激情久久久久影院小草| 91精品福利视频| 夫妇当面交换中文字幕小说| 中文字幕亚洲色图| 日本媚薬痉挛在线观看免费| 亚洲av专区无码观看精品天堂| 欧美日韩中文国产va另类| 亚洲视频精品在线|