<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 頭文件定義和ARM指令

頭文件定義和ARM指令

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

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

本文引用地址:http://dyxdggzs.com/article/201611/317568.htm

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

查看數據存放在那個(gè)節點(diǎn):(用命令)
readelf -S (查看節點(diǎn)號和節點(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 //取后面數的反碼
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 ;根據CPSR條件標志位中的HI(無(wú)符號大于)判斷,若R0>R1,則R0=3
MOVLS R1,#3 ;根據CPSR條件標志位中的LS(無(wú)符號小于或等于)判斷,R0<=R1,則R1=3

ORR R0,R0,#3 ;邏輯或運算,R0 = R0 3

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

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

MRS R0,CPSR ;傳送CPSR的內容到R0
MRS R1,SPSR ;傳送SPSR的內容到R1

LDR R1,=0x33100
LDRB R0,[R1] ;將存儲器地址為R1的字節數據讀入寄存器R0,并將R0的高24位清零
LDRH R2,[R1] ;將存儲器地址為R1的半字數據讀入寄存器R2,并將R2的高16位清零

STR R0,[R1] ;將R0中的字數據寫(xiě)入以R1為地址的存儲器中
STR R0,[R1,#8] ;將R0中的字數據寫(xiě)入以R1+8為地址的存儲器中


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

數據傳送指令:
MOV
MOVS (會(huì )影響標志位)
MVN 取反

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

影響標志位:
ADC
SBC
RSC

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

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

程序狀態(tài)寄存器訪(fǎng)問(wèn)指令:
MRS 狀態(tài)寄存器 -> 寄存器
MSR 狀態(tài)寄存器 <- 寄存器

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

加載/存儲指令--單寄存器加載

LDR
LDRB
LDRT
....

STR
STRB
STRT
....

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

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



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

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>