版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
ARM培訓(xùn)講義提綱
單位:西安電子科技大學(xué)
編寫:何方勇
編寫日期:2005年7月1日
緒言
此次ARM培訓(xùn)要緊使各位受訓(xùn)人員了解嵌入式操作系統(tǒng)的差不多概
念、軟硬件構(gòu)成框架、以及把握與嵌入式操作系統(tǒng)有關(guān)的知識。
隨著通信技術(shù)、電子技術(shù)、運(yùn)算機(jī)技術(shù)、以及微電子技術(shù)的進(jìn)展,片
上系統(tǒng)(SOC)成為當(dāng)今電子技術(shù)的一大主流;這就使得嵌入式開發(fā)技術(shù)
成為整個(gè)業(yè)界的研究和開發(fā)的熱點(diǎn)。我們明白當(dāng)今世界通信與信息技術(shù)進(jìn)
展的3大熱點(diǎn)是:第三、四代移動(dòng)通信技術(shù)、數(shù)字電視技術(shù)、以及汽車電
子技術(shù)。在這幾個(gè)熱點(diǎn)技術(shù)的最終實(shí)現(xiàn)將被納入系統(tǒng)的概念,其中嵌入式
系統(tǒng)將在里面伴有重要的角色。
嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)作為一種新的系統(tǒng),我們應(yīng)該如何把握呢?以下我們
將簡要介紹一下嵌入式系統(tǒng)。
嵌入式操作系統(tǒng)的差不多概念
從字面上,我們能夠從兩方面懂得嵌入式系統(tǒng):嵌入式、系統(tǒng)。列舉
適當(dāng)?shù)睦又v明嵌入式系統(tǒng)的應(yīng)用:手持設(shè)備、大型通信設(shè)備
嵌入式操作系統(tǒng)與常見的單片機(jī)、DSP系統(tǒng)的細(xì)微區(qū)別
從系統(tǒng)的概念動(dòng)身講解:單片機(jī)、和DSP是沒有系統(tǒng)概念的
嵌入式操作系統(tǒng)的軟硬件平臺開發(fā)
1.嵌入式操作系統(tǒng)的硬件構(gòu)成:核心處理器、程序和數(shù)據(jù)儲備器、總
線系統(tǒng)、外圍接口(設(shè)備)等;
2.嵌入式操作系統(tǒng)的軟件構(gòu)成:系統(tǒng)軟件、API、底層驅(qū)動(dòng)、應(yīng)用程
序等
結(jié)合微機(jī)系統(tǒng)操作系統(tǒng)講解
3.常見嵌入式操作系統(tǒng):VxWorks、PSOS、LINUX,WINCE、NUC
LEUS等,各種操作系統(tǒng)的區(qū)別和優(yōu)點(diǎn)及應(yīng)用前景。
如何樣進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)
嵌入式系統(tǒng)開發(fā)是此次培訓(xùn)的要緊內(nèi)容,那我們應(yīng)該從以下方面入手:
處理器、硬件部件、操作系統(tǒng)、編程語言、軟件開發(fā)工具、硬件開發(fā)平臺、
軟件組成。
處理器:速度、10設(shè)計(jì)指標(biāo)、處理器的軟件支持、處理器調(diào)試方式、
處理器提供商的信譽(yù)度;
硬件部件:硬件實(shí)現(xiàn)難度、開發(fā)周期、市場前景、供貨情形
操作系統(tǒng):產(chǎn)品的適合度、調(diào)試難度、代碼結(jié)構(gòu)、可開發(fā)潛力、移植
可行性
編程語言:高級語言、低級語言
軟件開發(fā)工具:系統(tǒng)調(diào)試功能如何、支持的庫函數(shù)、開發(fā)商的軟件支
持
嵌入式處理器
在以上的講義中我們簡要提到了嵌入式開發(fā)的各方面的咨詢題,接下
來我們將從硬件開始講解。在嵌入式系統(tǒng)中,要緊以ARM芯片作為該系統(tǒng)
的核心芯片。
嵌入式處理器簡介
ARM是AdvancedRISCMachines的縮寫,ARM公司于1990成立,
ARM以低成本、低功耗、高性能迅速占據(jù)了全球市場。其產(chǎn)品廣泛應(yīng)用到
移動(dòng)通信、消費(fèi)電子、以及嵌入式市場。ARM公司不生產(chǎn)芯片,只是IP
供應(yīng)商,只做設(shè)計(jì)。
常見ARM處理器系列有:ARM7系歹U、ARM9系歹U、ARM9E系列、
ARM10系列、SecurCoreSC100、StrongARM、XScale。在此,我們要緊
講解ARM7系列、ARM9系列:
ARM7系列:0.9MIPS/MHz3級流水、馮?諾依曼結(jié)構(gòu);其內(nèi)核要緊有A
RM7TDMI和ARM720T;T:支持16位THUMB指令,D支持在片調(diào)試,
M增強(qiáng)型乘法器,產(chǎn)生全64位結(jié)果,I:嵌入式ICE硬件提供片上斷點(diǎn)和調(diào)
試點(diǎn)支持
ARM9系列:LlMIPS/MHz5級流水、哈佛結(jié)構(gòu);其內(nèi)核要緊有ARM9
20T、ARM722T和ARM940T;
基于ARM內(nèi)核的芯片擴(kuò)展
由于ARM公司只做IP,不生產(chǎn)具體的芯片;因此我們所使用的ARM
芯片差不多上全世界其他硬件芯片廠商在通過ARM公司的授權(quán),然后在此
基礎(chǔ)上進(jìn)行硬件擴(kuò)展,以滿足不同領(lǐng)域的需求。
下面,我們以三星公司的ARM芯片S3C2410X為例來簡要介紹基于A
RM內(nèi)核的芯片擴(kuò)展。
LCDLCD1/1____Ky\___r\|_BUSCONT.
CGNTDMA-------1/AXi-------ArbHo”Decode
H
USBHostCONT.BInlerruptCQNT.
Power
Extr.taslerB
<^>[Manayn^nt
NANDCON7U
NANDFlashBootaSMemoryCONT
Loader<^>[SRAM.NOR'SDRAM
CKxKGenerator
(MPIX)Bridge&DMA(4Ch)
—
UART0.1.2gg12c
USBDeMcegAI2S
p舊.
SDI/MMCBg.GPIO
Watchdog
TimerBRTC
U
BUSCONT
gADC
Aibltor.'DecodBS
Tlmer.'PWM
8PI0,1
0*3,4(Internal)
Figure1-1.S3C2410XBlockDiagram
ARM920T內(nèi)核詳解
現(xiàn)在基于ARM920T內(nèi)核的芯片逐步成為嵌入式系統(tǒng)芯片的主流,我們
有必基淫觸甘娃加.衛(wèi)星排一用空習(xí)物件開巖的箕碘山場的姓加囪加下
Figure1-1.ARM920TFunctionalBlockDiagram
下面我們將重點(diǎn)介紹ARM920T的協(xié)處理器CP15和內(nèi)存治理單元MM
u
協(xié)處理器CP15
內(nèi)存治理單元MMU
軟件開發(fā)
嵌入式系統(tǒng)的軟件開發(fā)包括:操作系統(tǒng)和應(yīng)用程序開發(fā)兩個(gè)方面。下
面我們進(jìn)一步講解基于ARM芯片的匯編語言。
ARM編程模型
ARM常見版本是V4和V5,現(xiàn)在要緊用的是V4,
處理器工作狀態(tài):ARM,THUMB
開關(guān)狀態(tài):進(jìn)入THUMB狀態(tài)、進(jìn)入ARM狀態(tài)
儲備器格式:大小端點(diǎn)格式
指令長度:32位、16位
數(shù)據(jù)類型:字,半字,字節(jié)
操作模式:7種
寄存器:31個(gè)通用寄存器和6個(gè)狀態(tài)寄存器
中斷:
ARM差不多尋址方式
寄存器尋址:
趕忙尋址:
寄存器移位尋址:
寄存器間接尋址:
變址尋址:
多寄存器尋址:
堆棧尋址:
塊拷貝尋址:
相對尋址:
ARM指令集
本章內(nèi)容是詳細(xì)講解ARM指令集。
ARM指令格式
313029282726252423222120191817161514131211109876543210
Cond00IOpcodesRnRdOperand2Data/Processing/
PSRTransfer
Cond000000AsRdRnRs1001RmMultiply
Cond0000IUAsRdHiRdLoRn1001RmMultiplyLong
Cond00010B00RnRd00001001RmSingleDataSwap
Cond0001001011111I111I110001RnBranchandExchange
Cond000Pu0WLRnRd00001SH1RmHalfwordDataTransfer:
registeroffset
Cond000Pu1WLRnRdOffset1SH1OffsetHalfwordDataTransfer:
immendiateoffset
Cond01IPuBwLRnRdOffsetSingleDataTransfer
Cond0111Undefined
Cond10oPuBwLRnRegisterListBlockDataTransfer
Cond101LOffsetBranch
Cond110PUBwLRnCRdCP#OffsetCoprocessorDataTransfer
CondI110CPOpcCRnCRdCP#CP0CRmCoprocessorDataOperation
CPCRmCoprocessorRegisterTransfer
Cond1110LCRnRdCP#CP1
Opc
Cond1111IgnoredbyprocessorSoftwareInterrupt
313029282726252423222120191817161514131211109876543210
表4—1:ARM指令集格式
注意:
某些指令碼沒有定義,但并不導(dǎo)致未定義指令陷阱顯現(xiàn),例如一個(gè)乘
法指令的第6位變?yōu)閘o不應(yīng)使用這些指令,因?yàn)樗鼈兊淖饔靡苍S會由以后
的ARM執(zhí)行
ARM指令集表:
下面表4—2、表4—3列出了ARM指令集:
表4一2:
MSRMoveregistertoPSRstatus/flagsPSR:=Rm
MULMultiplyRd:=RmxRs
MVNMovenegativeregisterRd:=0xFFFFFFFFEOR0p2
ORRORRd:=RnOROp2
RSBReverseSubtractRd:=Op2-Rn
RSCReverseSubtractwithCarryRd:=Op2-Rn-1+Carry
SBCSubtractwithCarryRd:=Rn-0p2-1+Carry
STCStorecoprocessorregistertomemoryaddress:=CRn
STMStoreMultipleStackmanipulation(Push)
STRStoreregistertomemory<address>:=Rd
SUBSubtractRd:=Rn-0p2
SWISoftwareInterruptOScall
SWPSwapregisterwithmemoryRd:=[Rn]?[Rn]:=Rm
TEQTestbitwiseequalityCPSRflags:=RnEOROp2
TSTTestbitsCPSRflags:=RnANDOp2
表4—3:ARM指令集
CodeSuffixFlagsMeaning
0000EQZsetequal
0001NEZclearnotequal
被*0010CSCsetunsignedhigherorsame
0011ccCclearunsignedlower
NJ0100MlNsetnegative
。101PLNclearpositiveorzero
0110VS\/sutoverflow
表力0111VCVclearnooverflow
意其1000HICsetandZclearunsignedhigher
1001LSCclearorZsetunsignedlowerorsame
個(gè)d1010GENequalsVgreaterorequal
時(shí),1011LTNnotequaltoVlessthan
1100GTZclearAND(NequalsV)greaterthan
PSF1101LEZsetOR(NnotequaltoV)lessthanorequal
1110AL(ignored)always
表4—4:ARM指令中的條件碼
ARM指令集詳解
★★1分支與交換(BX指令,Branch和Exchange指令):
該指令僅僅在條件為真時(shí)被執(zhí)行,參見表4—4。
該指令通過將一個(gè)通用寄存器Rn的內(nèi)容復(fù)制到程序計(jì)數(shù)器PC來執(zhí)行
一個(gè)分支。那個(gè)分支會引起管道流,并會按照Rn指定的地址再入。該指令
也承諾交換指令集。當(dāng)執(zhí)行該指令時(shí),Rn[O]的值決定了是否按照ARM指
令依舊THUMB指令對指令流進(jìn)行解碼。指令格式如下圖4—1所示:
312827242320191615121187430
|Cond|000l|001o|l11“111”111"OOO"Rn
[3:0]OperandRegister
IfbitOofRn=1,subsequentinstructionsdecodedasTHUMBinstructions
IfbitOofRn=0,subsequentinstructionsdecodedasARMinstructions
[31:28]ConditionField
圖4—1:BX指令格式
★指令循環(huán)時(shí)刻:
執(zhí)行BX指令占用2S+1N周期(與BL一樣),那個(gè)地點(diǎn)S和N分別代
表連續(xù)(S周期)和非連續(xù)(N周期)。
★匯編程序語法:
BX-分支和交換指令
BX{cond}Rn;{cond}為雙字母條件經(jīng)歷符(即條件碼),見
表4—4,而Rn表示一個(gè)有效寄存器(例如:R0)
★使用R15作操作數(shù):
如果將R15作操作數(shù),該情形未定義。
例:
ADRRO,Into_THUMB+1;產(chǎn)生分支目標(biāo)地址,bitO置位,進(jìn)入
THUMB狀態(tài)
BXR0;分支并改變到THUMB狀,R15(PC):=R
0
CODE16;匯編作為THUMB指令的后續(xù)碼
Into_THUMB
ADRR5,Back_to_ARM;產(chǎn)生分支目標(biāo)到字排列地址,bitO置
低,變回到ARM
BXR5;分支并變回到ARM狀態(tài),R15(PC):=R0
ALIGN;字排列
CODE32;匯編作為ARM指令的后續(xù)碼
Back_to_ARM
★★2分支與帶鏈接分支(B、BL)
3128272524230
|Cond|101|L|Offset
[24]Linkbit
0=Branch1=Branchwithlink
[31:28]ConditionField
圖4—2:B、BL指令格式
分支指令包含有一個(gè)有符號的2態(tài)補(bǔ)充24位偏移(相當(dāng)于25根地址線
+符號位,即+/-32M字節(jié))。這被左移兩位,符號擴(kuò)展至32位,并加到程序
計(jì)數(shù)器PC。因此該指令能夠指定+/-32M字節(jié)的分支。該指令偏置必須考慮
預(yù)取操作,它會引起程序計(jì)數(shù)器PC超前當(dāng)前指令2個(gè)字(8個(gè)字節(jié))。
超過+/-32M字節(jié)的分支必須使用偏置或事先裝入寄存器的絕對目標(biāo)。
在這種情形下,如果要求有帶鏈接類型的分支操作,應(yīng)當(dāng)將PC值人工存入
R14o
★鏈接位:
帶鏈接的分支(BL)將舊的PC寫入當(dāng)前儲備空間的鏈接寄存器(R1
4)o寫入R14的值被調(diào)整到承諾預(yù)取,并包含緊跟著“分支與鏈接指令”
的指令地址。注意CPSR不保留PC值,R14[l:0]總是清零。
從帶鏈接的分支返回,如果鏈接寄存器仍舊有效,可使用MOVPC,R1
4;或如果鏈接寄存器以被Rn存作堆棧指針,使用LDMRn!,{..PC}。
★指令循環(huán)時(shí)刻:
分支和帶鏈接分支指令占用2S+1N增加的周期(與BX一樣),那個(gè)地
點(diǎn)S和N分別代表連續(xù)(S周期)和內(nèi)部(I周期)。
★匯編程序語法:
什中的內(nèi)容任意,<>中的內(nèi)容必須顯現(xiàn)
B{L}{cond}<expression>
{L}常用要求帶鏈接分支的指令形式。如果缺省,R14
不受指令阻礙,即不將舊的PC值存入R14。
{cond}如表4—4中所示的雙字母助記符(條件碼),如果缺
省,默認(rèn)為AL(Always)o
〈expression〉目標(biāo)單元,匯編程序運(yùn)算偏移量。
例
312827262524212019161512110
s
|Cond|00||L|Opcode|llRn|Rd1Operand2
[15:12]Destinationregister
0=Branch1=Branchwithlink
[19:16]1stoperandregister
0=Branch1=Branchwithlink
[20]Setconditioncodes
0=Donotafterconditioncodes1=Setconditioncodes
[24:21]Operationcodes
0000=AND-Rd:=Op1ANDOp2
0001=EOR-Rd:=Op1EOROp2
0010=SUB-Rd:=0p1-Qp2
0011=RSB-Rd:=Op2-Op1
0100=ADD-Rd:=0p1+0p2
0101=ADC-Rd:=Op1+Op2+C
圖Z0110=SBC-Rd:=OP1-Op2+C-1
0111=RSC-Rd:=Op2-Op1+C-1
1000=TST-setconditioncodesonOp1ANDOp2
1001=TEOsetconditioncodesonOP1EOROp2
1010=CMP-setconditioncodeson0p1-0p2
1011=SMN-setconditioncodeson0p1+0p2
1100=ORR-Rd:=Op1OROp2
1101=MOV-Rd:=Op2
1110=BIC-Rd:=Op1ANDNOTOp2
1111=MVN-Rd:=NOTOp2
[25]Immediateoperand
0=Operand2isaregister1=Operand2isanimmediatevalue
[11:0]Operand2typeselection
[31:28]Conditionfield
圖4—3:數(shù)據(jù)處理指令
該指令通過對一或兩個(gè)操作數(shù)進(jìn)行指定的算術(shù)或邏輯運(yùn)算產(chǎn)生結(jié)果。
第一個(gè)操作數(shù)總是一個(gè)寄存器(Rn)。
按照指令中L(即D25)位的值,第二個(gè)操作數(shù)可能是一個(gè)移位寄存器
(Rm)或一個(gè)8位循環(huán)趕忙數(shù)(Imm)o按照指令中S位的值,確定該指令
的結(jié)果是否能夠愛護(hù)或更新CPSR中的條件碼。
5
THLL」二屬"/nnonn/1/-dec、r1iz^x/1口一^01cc、HR/de
AssemblerMnemonicOPCodeAction
1-0AND。000Operand1ANDoperand2
EOROOCHOperand1EORoperand2
多口才
WUB0010Operand1-operand2
RSB0011Operand2operand1
ADD0100Operand1+operand2
ADC:Operand1+operand2+carry
ST、SBC011。Operand1-operand2+carry-1
RSC0111Operand2-operand1+carry-1
I.L.工!
的書TST1000AsAND,butresultisnotwritten
則(TEQ1。。1AsEOR,butresultisnotwritten
CMPAsSUB.butresultisnotwritten
移不CMN1011AsADD,butresultisnotwritten
為云ORR1100Operand1ORoperand2
MOV1101Operand2(operand1IsIgnored)
B,ICinoOperand1ANDNOToperand2(Bitclear)
MVN1111NOToperand2(operandlisignored)
表4—5:數(shù)據(jù)處理指令
算術(shù)運(yùn)算(SUB、RSB、ADD、ADC、SBC、RSC、CMN)將每個(gè)操
作數(shù)都看作是一個(gè)32位的整數(shù)(無符號或兩個(gè)獨(dú)立的符號,兩種情形時(shí)一
樣的)。如果S位被置位(同時(shí)Rd不是R15),則CPSR中的V標(biāo)志在結(jié)果
的bit31顯現(xiàn)溢出時(shí)被置位,如果操作數(shù)均為無符號數(shù)能夠不理會,但如果
操作數(shù)為兩個(gè)獨(dú)立的有符號數(shù)則會發(fā)出錯(cuò)誤提示,C標(biāo)志會由于執(zhí)行ALU
的bit31被置位,Z標(biāo)志當(dāng)且僅當(dāng)結(jié)果全零時(shí)被置位,N標(biāo)志被置為結(jié)果bi
t31的值(如果認(rèn)為操作數(shù)為兩個(gè)獨(dú)立的有符號數(shù)時(shí)指示結(jié)果為負(fù))。
★移位:
當(dāng)?shù)诙€(gè)操作數(shù)被指定為移位寄存器時(shí),寄存器的移位操作受指令中
的移位域操縱。該域指示要執(zhí)行的移位類型(邏輯左移或右移、算術(shù)右移
或循環(huán)右移)。寄存器要移動(dòng)的值可包含在指令的趕忙域中,或者在另一個(gè)
寄存器(除了R15)。不同移位類型的編碼如圖4-4所示。
1176541187654
_____Ih|RS|o|I□
[6:5]Shifttype[6:5]Shifttype
00=logicalleft01=logicalright00=logicalleft01=logicalright
10=arithmeticright11=rotateright10=arithmeticright11=rotateright
[11:7]Shiftamount[11:8]Shiftregister
5bitunsignedintegerShiftamountspecifiedinbottom-byteofRs
圖4-4:ARM移位操作
★指定偏移量指令:
當(dāng)指令中指定了偏移量時(shí),它包含了一個(gè)5位的區(qū)域,其賦值范疇為0
~31
的《
果耳
變2
如]
圖4—6:邏輯右移
右爰
換后
而為
-7
圖4—7:算術(shù)右移
圖4—9:帶擴(kuò)展循環(huán)右移
★指定偏移量寄存器
只有Rs的最低端字節(jié)被用來確定偏移量。Rs能夠是除R15外的任何
寄存器。
如果該字節(jié)為零,Rm未改變的內(nèi)容將被當(dāng)作第二操作數(shù),同時(shí)舊的C
PSR的C標(biāo)志值將會被作為shifter的進(jìn)位輸出。
如果1到31位之間字節(jié)有值,移位結(jié)果將與指定移位指令的同一個(gè)值
和移位操作匹配。
如果字節(jié)中的值大于等于32,結(jié)果為上面所述移位的邏輯擴(kuò)展:
LSL32結(jié)果為零,進(jìn)位輸出等于Rm的。位;
LSL大于32結(jié)果為零,進(jìn)位為零;
LSR32結(jié)果為零,進(jìn)位輸出等于Rm的31位;
LSR大于32結(jié)果為零,進(jìn)位為零;
ASR大于等于32結(jié)果和進(jìn)位等于Rm的31位;
ROR32結(jié)果等于Rm,進(jìn)位等于Rm的31位;
RORn結(jié)果和進(jìn)位與RORn-32相同,那個(gè)地點(diǎn)n大于32;因此持續(xù)
從n中減去32,直到n值在1?31之間,見前面。
注意:
必須使帶有操縱移位寄存器指令的bit7為零,該位為1會引起指令為
乘或未定義。
★趕忙數(shù)循環(huán):
趕忙數(shù)循環(huán)域是一個(gè)4位無符號整數(shù),指定對8位趕忙數(shù)進(jìn)行移位操
作。該值為擴(kuò)展到32位的零,然后通過在循環(huán)域中的兩倍值服從右移。這
能夠產(chǎn)生許多常數(shù),例如2的福。
★寫入R15
當(dāng)Rd為除R15外的寄存器時(shí),CPSR中的條件碼標(biāo)志能夠從前面所述
的ALU標(biāo)志更新。
當(dāng)Rd為R15同時(shí)指令中的S標(biāo)志未置位時(shí),操作結(jié)果被放入R15且C
PSR不受阻礙。
當(dāng)Rd為R15且S標(biāo)志置位時(shí),操作結(jié)果被放入R15,對應(yīng)于當(dāng)前模式
的SPSR被移入CPSR。這承諾自動(dòng)儲備PC和CPSR的狀態(tài)改變。這種指
令格式在用戶模式下不能使用。
★用R15作操作數(shù)
如果R15(PC)被用于數(shù)據(jù)處理指令中的一個(gè)操作數(shù),可直截了當(dāng)使
用該寄存器。
PC值確實(shí)是指令地址、加上由于指令預(yù)取的8或12個(gè)字節(jié)。如果指
令中指定了移位量,PC為前8個(gè)字節(jié)。如果用寄存器指定移位量,貝UPC
為前12個(gè)字節(jié)。
★TEQ、TST、CMP和CMN操作碼:
注意:
TEQ、TST、CMP和CMN不寫結(jié)果操作結(jié)果但置位CPSR中的標(biāo)志位。
即使助記符中沒有指定,匯編程序也應(yīng)當(dāng)總將這些指令的S標(biāo)志置位。
不能使用TEQP指令,它是早期ARM處理器使用的TEQ指令:代替
PSR轉(zhuǎn)移操作。
在ARM920T中TEQP的功能是:如果處理器工作在特許模式就將SP
SR_<mode>移入CPSR,如果在用戶模式什么也不做。
指令周期:數(shù)據(jù)處理指令增加的周期數(shù)如下表4-6:
ProcessingTypeCycles
Normaldataprocessing1S
Dataprocessingwithregisterspecifiedshift1S+11
DataprocessingwithPCwritten2S+1N
DataprocessingwithregisterspecifiedshiftandPCwritten2S+1N+11
表4-6:增加的循環(huán)時(shí)刻
注:S、N和I分別定義為順序(S-周期)、非順序(N-周期)和內(nèi)部(I
-周期)。
匯編程序句法
MOV,MVN(單操作數(shù)指令).
<opcode>{cond}{S}Rd,<Op2>
CMP,CMN,TEQ,TST(無結(jié)果指令).
<opcode>{cond}Rn,<Op2>
AND,EOR,SUB,RSB,ADD,ADC,SBC,RSC,ORR,BIC
<opcode>{cond}{S}Rd,Rn,<Op2>
那個(gè)地點(diǎn):
<Op2>Rm{,<shift>}或,<#expression〉
{cond}雙字母條件助記符,見表4—4
{S}如果S表示(指CMP,CMN,TEQ,TST),置位
條件碼.
Rd,Rn和Rm寄存器號表達(dá)式
<#expression>如果使用,匯編程序?qū)a(chǎn)生一個(gè)移位的趕忙8位域
來匹配表達(dá)式,如果不用會出錯(cuò)
<shift><Shiftname><register>或<shiftname>#expression,或RR
X(帶擴(kuò)展右移1位).
<shiftname>sASL,LSL,LSR,ASR,ROR.(ASL與LSL意義相同,
它們的匯編碼一樣)
例:
ADDEQR2,R4,R5;如果Z標(biāo)志置位,使R2=R4+R5
TEQSR4,#3;測試區(qū)4等于3(S是余外的,由匯編程序
自動(dòng)插入)
SUBR4,R5,R7,LSRR2;通過R2底部字節(jié)數(shù)邏輯右移R7,從R
5中減去結(jié)果,并
;將答案放入R4
MOVPCR14:從孑程序扳同
MRS(transferPSRcontentstoaregister)
312827232221161512110
CP5Cond00010Ps001111Rd000000000000
[15:12]DestinationRegister
[22]SourcePSR
0=CPSR1=SPSR_<currentmode>
數(shù)擊[31:28]ConditionField
標(biāo)只
MSR(transferregistercontentstoPSR)
3128272322211211430
Cond00010I>d10100111100000000Rm
或S
[3:0]SourceRegister
容無
[22]DestinationPSR
0=CPSR1=SPSR_<currentmode>
[31:28]ConditionField
moc
形]MSR(transferregistercontentsorimmediatevaluetoPSRflagbitsonly)
31282726252423222112110
態(tài)考Cond0010>d101001111Sourceoperand
[22]DestinationPSR
0=CPSR1=SPSR_<currentmode>
能電[25]ImmediateOperand
0=Sourceoperandisaregister
1=SPSR_<currentmode>
理者[11:0]SourceOperand
11430
I00000000Rm
[3:0]SourceRegister
IQ,[11:4]Sourceoperandisanimmediatevalue
11870
RotateImm
[7:0]Unsigned8bitimmediatevalue
[11:8]ShiftappliedtoImm
使用
[31:28]ConditionField
圖4—10:MRS、MSR指令格式
保留位:
ARM920T中只定義了PSR的12個(gè)位(N、Z、C、V、I、F、T和M[4:
0]),其余位保留為今后的處理器使用。
為確保ARM920T和今后處理器之間的最大兼容性,應(yīng)當(dāng)遵守下列原
則:
當(dāng)改變PSR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)外教聘用合同模板
- 民航機(jī)場監(jiān)理合同協(xié)議
- 火車站改造力工合同
- 濰坊市房產(chǎn)市場預(yù)測合同
- IT行業(yè)程序員租賃合同
- 人才梯隊(duì)建設(shè)與培養(yǎng)
- 2025年配電網(wǎng)綜合自動(dòng)化裝置合作協(xié)議書
- 倉儲基地土地租賃協(xié)議
- 虛擬現(xiàn)實(shí)行業(yè)試用期合同管理
- 保姆協(xié)議書范本
- 北京郵電大學(xué)《數(shù)據(jù)庫系統(tǒng)》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024-2030年中國離合器制造行業(yè)運(yùn)行動(dòng)態(tài)及投資發(fā)展前景預(yù)測報(bào)告
- 儲能運(yùn)維安全注意事項(xiàng)
- 客戶管理系統(tǒng)技術(shù)服務(wù)合同
- 中國HDMI高清線行業(yè)市場動(dòng)態(tài)分析及未來趨勢研判報(bào)告
- 活雞運(yùn)輸合同范例
- DB22T 277-2011 建筑電氣防火檢驗(yàn)規(guī)程
- 2024年基本公共衛(wèi)生服務(wù)工作計(jì)劃(三篇)
- 某物流公司投標(biāo)書
- 2024-2030年中國錸行業(yè)供需趨勢及發(fā)展規(guī)模分析報(bào)告
- 2023-2024學(xué)年《軟件設(shè)計(jì)與體系結(jié)構(gòu)》模擬試卷及答案解析
評論
0/150
提交評論