<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          頭文件定義和ARM指令

          作者: 時(shí)間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
          內(nèi)存管理:內(nèi)存的分配和釋放等

          靜態(tài)和動(dòng)態(tài)內(nèi)存:主要是在釋放方式上的區(qū)別

          本文引用地址:http://www.ex-cimer.com/article/201611/317568.htm

          靜態(tài)變量:編譯時(shí)就已經(jīng)確定,定義在函數(shù)外面
          自動(dòng)變量:在程序運(yùn)行時(shí)才能在棧中確定
          只讀數(shù)據(jù)節(jié):存放常量的地方,包括字符常量,不修改的數(shù)據(jù)

          查看數(shù)據(jù)存放在那個(gè)節(jié)點(diǎn):(用命令)
          readelf -S (查看節(jié)點(diǎn)號(hào)和節(jié)點(diǎn)名)
          readelf -x .data a.out

          生命周期:(分成靜態(tài),動(dòng)態(tài))

          兩個(gè)宏的定義和包含:

          定義一個(gè)a.h
          #ifndef _A_H_
          #define _A_H_
          ..............................
          ..............................

          #endif


          定義一個(gè)b.h,其中包含a.h
          #ifndef _B_H_
          #define _B_H_

          #include "a.h"

          ..............................
          ..............................

          #endif

          ARM指令集中指令:

          STR R0,[R1] //[R1] <= R0

          MVN R0, #0XFF //R0 = 0XFFFFFF00 //取后面數(shù)的反碼
          MVN R0,#0XA7 //0XA7的反碼為0x5FFFFFF8 -> R0

          MOV R0,#1
          MOV R1,#2
          CMP R0,R1 ;若R0>R1,則置R0=3,若R0<=R1,則置R1=3
          MOVHI R0,#3 ;根據(jù)CPSR條件標(biāo)志位中的HI(無符號(hào)大于)判斷,若R0>R1,則R0=3
          MOVLS R1,#3 ;根據(jù)CPSR條件標(biāo)志位中的LS(無符號(hào)小于或等于)判斷,R0<=R1,則R1=3

          ORR R0,R0,#3 ;邏輯或運(yùn)算,R0 = R0 3

          BIC R0,R0,#0x0B ;將R0的bit0,bit1,bit3清零,其余位不變

          跳轉(zhuǎn)指令:
          B 無條件跳轉(zhuǎn)
          BL 適合子程序的調(diào)轉(zhuǎn),地址有保存,可以返回
          B label PC <- label
          BL label LR <- PC-4,PC <- label

          MRS R0,CPSR ;傳送CPSR的內(nèi)容到R0
          MRS R1,SPSR ;傳送SPSR的內(nèi)容到R1

          LDR R1,=0x33100
          LDRB R0,[R1] ;將存儲(chǔ)器地址為R1的字節(jié)數(shù)據(jù)讀入寄存器R0,并將R0的高24位清零
          LDRH R2,[R1] ;將存儲(chǔ)器地址為R1的半字?jǐn)?shù)據(jù)讀入寄存器R2,并將R2的高16位清零

          STR R0,[R1] ;將R0中的字?jǐn)?shù)據(jù)寫入以R1為地址的存儲(chǔ)器中
          STR R0,[R1,#8] ;將R0中的字?jǐn)?shù)據(jù)寫入以R1+8為地址的存儲(chǔ)器中


          LDR R1,=0x33100
          LDMIA R1,{R5,R6} ;R5 = [R1],R6 = [R1+4]
          MOV R2,#0x33
          MOV R3,#0X44
          STMIA R1,{R2,R3} ;[R1]=R2,[R1+4]=R2

          數(shù)據(jù)傳送指令:
          MOV
          MOVS (會(huì)影響標(biāo)志位)
          MVN 取反

          ADD
          SUB
          RSB Rd,Rn,R1 Rd <- R1-Rn 逆向減法

          影響標(biāo)志位:
          ADC
          SBC
          RSC

          邏輯處理指令:
          AND
          ORR
          EOR 異或
          BIC 位清除指令

          比較指令:
          CMP 減法運(yùn)算,結(jié)果不保存,修改標(biāo)志位
          TST 位測(cè)試指令TST Rn operand 將Rn的值與operand的值按位作邏輯“與”操作,根據(jù)操作的結(jié)果更新CPSR中的相應(yīng)條件標(biāo)志位,當(dāng)所有測(cè)試位為0時(shí)-> Z = 1
          TEQ 相等測(cè)試指令,將Rn的值與operand的值按位作邏輯“異或”操作,根據(jù)操作的結(jié)果更新CPSR中的相應(yīng)條件標(biāo)志位,當(dāng)兩個(gè)數(shù)據(jù)相等時(shí):EQ有效,否則:NE有效

          程序狀態(tài)寄存器訪問指令:
          MRS 狀態(tài)寄存器 -> 寄存器
          MSR 狀態(tài)寄存器 <- 寄存器

          MRS R1,CPSR 將CPSR狀態(tài)寄存器讀取,保存到R1
          MRS CPSR,R1 R1 -> CPSR

          加載/存儲(chǔ)指令--單寄存器加載

          LDR
          LDRB
          LDRT
          ....

          STR
          STRB
          STRT
          ....

          向后索引:LDR Rd,[Rn],#-0x04 1.Rd <- [Rn] Rn = Rn-4

          ***********************************************************************************************************************************
          ***********************************************************************************************************************************
          ***********************************************************************************************************************************
          ***********************************************************************************************************************************



          關(guān)鍵詞: 頭文件定義ARM指

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();