1. gzyueqian
      13352868059

      粵嵌嵌入式開發培訓教程 匯編語言程序訪問C語言全局變量

      更新時間: 2019-04-05 15:04:55來源: 嵌入式培訓瀏覽量:6338

        嵌入式開發學習什么?嵌入式開發門檻高,涉及的知識面廣,既要求懂硬件,又必須能寫軟件,而軟硬件涉及的知識體系卻又是異常的龐大。今天不講那么復雜,來聊聊嵌入式開發培訓教程中涉及到匯編語言的一點內容——匯編語言程序訪問C語言全局變量。



        匯編語言程序可通過地址間訪問在C語言程序中聲明的全局變量。通過使用IMPORT關鍵詞引入全局變量,并利用LDR和STR指令根據全局變量的地址來訪問它們。對于不同類型的變量,需要采用不同選項的LDR和STR指令:


        unsigned char   LDRB/STRB
        unsigned short LDRH/STRH
        unsigned int    LDR/STR
        char            LDRSB/STRSB

        short           LDRSH//STRSH


        對于結構,如果知道各個成員的偏移量,則可通過加載和存儲指令進行訪問。如果結構所占空間小于8個字,則可用LDM和SRM一次性讀/寫。


        嵌入式開發培訓教程來舉例。下面是一個在匯編語言程序中訪問C語言程序全局變量的例子,它讀取全局變量globvar,并將其加2后寫回。程序中變量globvar是在C語言程序中聲明的全局變量。


        示例    C語言程序全局變量在匯編語言程序中的訪問。


        AREA globals,CODE,READONLY
        EXPORT asmsubroutine        ;用EXPORT偽操作聲明該變量可被其他文件引
        ;用,相當于聲明了一個全局變量
        IMPORT  globvar             ;用IMPORT偽操作聲明該變量時在其他文件中定
        ;義的,在本文件中可能要用到該變量
        asmsubroutine
        LDR R1,=globvar             ;從文字池讀globvar的地址,并將其保存到R1
        LDR R0,[R1]                ;再將其值讀入到寄存器R0中
        ADD R0,R0,#2
        STR R0,[R1]                ;修改后再將寄存器R0的值賦予變量globvar
        MOV PC,LR

        END


        學習嵌入式開發培訓教程,大家都有自己的學習方式,粵嵌建議大家一定要堅持和學習,在自己的領域中精進。


      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 在线观看欧美高清福利片 | 亚洲欧美国产精品有字幕 | 在线观看网站深夜免费AV | 一本一道久久a久久 | 日本少妇喷水高清 | 亚洲Aⅴ午夜福利精品一区 一本精品99久久精品77 |