下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
ARMARMPC4GB的地址空間中的任意跳轉(zhuǎn),在跳MOV4GB連續(xù)的線性地址空間的子程序ARM32MB的地址空間的跳轉(zhuǎn),4條指令:—BBLBLXBX1、BBB{條件}B指令是最簡單的跳轉(zhuǎn)指令。一旦遇到一個B指令,ARM處理器將立即跳轉(zhuǎn)到給定的目標(biāo)地址從那里繼續(xù)執(zhí)行注意在跳轉(zhuǎn)指令中的實際值是相對當(dāng)前PC值的一個偏移量,而不是一個絕對地址,它的值由匯編器來計算(參考尋址方式中的相對尋址。它是24位有符號數(shù),左移兩位后有符號擴展為32位,表示的有效偏移為26位(32MB的地址 CPSRZ條件碼置位時,程序跳轉(zhuǎn)到標(biāo)號LabelBEQ2BLBLBL{條件}BLR14PC的當(dāng)前內(nèi)容,因此,可以R14PC中,來返回到跳轉(zhuǎn)指令之后的那個指令處執(zhí)行。該指令BLLabelLabelPCR143BLXBLX BLX指令從ARMARMThumbPCR14中。因此,當(dāng)子4BXBX BXARM指令,也可以Thumb指令。CPSR中的相應(yīng)條件標(biāo)志位。CPSR中相應(yīng)的條件標(biāo)志位。MOVMVNCMPCMNTSTTEQADDADCSUBSBCRSBRSCANDORREORBIC1MOVMOVMOV{條件}{S}MOV MOVPC,R14 R14PC,常用于子程序返回MOVR1,R0,LSL#3R03R12MVNMVNMVN{條件}{S}MVN指令可完成從另一個寄存器、被移位的寄存器、或?qū)⒁粋€立即數(shù)加載到目的寄存器。S決定指令的操作是否影響CPSRS時指令不更新CPSRMVN 0R0R0=-3CMPCMPCMP{條件}1CMP指令用于把一個寄存器的內(nèi)容和另一個寄存器的內(nèi)容或立即數(shù)進行比較,同時更新CPSR中條件標(biāo)志位的值。該指令進行一次減法運算,但不結(jié)果,只更改條件標(biāo)志位。2GT后綴的指令將可以執(zhí)行。CMPR1,R0 R1R0CPSR的標(biāo)志 4CMNCMNCMN{條件}1CMN指令用于把一個寄存器的內(nèi)容和另一個寄存器的內(nèi)容或立即數(shù)取反后進行比較,同時CMNR1,R0 R1R0CPSR的標(biāo)志CMN 5TSTTSTTST{條件}1TSTTST TSTR1,#0xffe R10xffeCPSR的標(biāo)6TEQTEQTEQ{條件}1TEQ指令用于把一個寄存器的內(nèi)容和另一個寄存器的內(nèi)容或立即數(shù)進行按位的異或運算,CPSR12TEQR1,R2 R1R2CPSR的標(biāo)7ADDADDADD{條件}{S}1ADD1應(yīng)是一個寄存2可以是一個寄存器,被移位的寄存器,或一個立即數(shù)。;R0=R1+;R0=R1+;R0=R2+(R3<<8ADCADCADC{條件}{S}1ADCCPSRC條件標(biāo)志位的值,并將結(jié)果存放到32位大的數(shù)的加法,注意S12可以是一個寄存器,R11~R8R3~R0: ;加的 ;加第二個字,帶進位 ;加第三個字,帶進位 ;加第,帶進位9SUBSUBSUB{條件}{S}1;R0=R1-;R0=R1-;R0=R2-(R3<<10、SBCSBCSBC{條件}{S}132位的減法,注意記設(shè)置S后綴來更改進位標(biāo)志。該指令可用于有符號數(shù)或無符號數(shù)的減法運算。 R0=R1-R2-!CCPSR的進位標(biāo)11、RSBRSBRSB{條件}{S}1;R0=R2–;R0=256–;R0=(R3<<1)-12、RSCRSCRSC{條件}{S}132位的減法,注意記設(shè)置S后綴來更改進位標(biāo)志。該指令可用于有符號數(shù)或無符號數(shù)的減法運算。 ;R0=R2–R1-13、ANDANDAND{條件}{S}1AND用于操作數(shù)1的某些位。 R00、114、ORRORRORR{條件}{S}1ORR1的某些位。 R00、115、EOREOREOR{條件}{S}11的某些位。 R00、116、BICBICBIC{條件}{S}12232位的 R00、13,其余的位保持646— 32 32SMULL64SMLAL64UMULL64UMLAL641、MULMULMUL{條件}{S}1MUL12CPSR1232位的MUL ;R0=R1×MULS ;R0R1R2CPSR2、MLAMLAMLA{條件}{S}12MLA123,并把結(jié)果放置232位的有符號數(shù)或無符號數(shù)。MLA ;R0=R1×R2+MLAS ;R0R1R2R3CPSR3SMULLSMULLSMULL{條件}{S}目的寄存器Low,目的寄存器低High1SMULL1232位放置到目的寄存Low32High1232位的有符號數(shù)。SMULL ;R0=(R2R3)32;R1=(R2R3)324SMLALSMLALSMLAL{條件}{S}目的寄存器Low,目的寄存器低High1SMLAL1232位同目的寄存器LowLow32High中的值相加HighCPSR中相應(yīng)的條件標(biāo)志位。1232位的有符號數(shù)。Low64323232SMLAL ;R0=(R2R3)32;R1=(R2R3)325UMULLUMULLUMULL{條件}{S}Low,目的寄存器低High1UMULL1232位放置到目的寄存Low32HighCPSR1232位的無符號數(shù)。UMULL ;R0=(R2R3)32;R1=(R2R3)326UMLALUMLALUMLAL{條件}{S}Low,目的寄存器低High1UMLAL指令完成將操作數(shù)1與操作數(shù)2的乘法并把結(jié)果的低32位同目的寄存器LowLow32High中的值相加HighCPSR中相應(yīng)的條件標(biāo)志位。1232位的無符號數(shù)。Low64323232UMLAL ;R0=(R2R3)32;R1=(R2R3)32ARM微處理器支持程序狀態(tài)寄存器指令,用于在程序狀態(tài)寄存器和通用寄存器之間傳MRSMSR1MRSMRSMRS{條件}通用寄存器,程序狀態(tài)寄存器(CPSRMRS指令用于將程序狀態(tài)寄存器的內(nèi)容傳送到通用寄存器中。該指令一般用在以下幾種情MRS將程序狀態(tài)寄存器的內(nèi)容讀入通用寄MRSR0,CPSR ;傳送CPSR的內(nèi)容到R0MRS ;傳送SPSR的內(nèi)容到2MSRMSRMSR{條件}程序狀態(tài)寄存器(CPSRSPSR)_<域>MSR指令用于將操作數(shù)的內(nèi)容傳送到程序狀態(tài)寄存器的特定域中。其中,操作數(shù)可以為通用寄存器或立即數(shù)。<域>用于設(shè)置程序狀態(tài)寄存器中需要操作的位,32位的程序狀態(tài)寄存4個域:位[31:24]為條件標(biāo)志位域,用f表示;位[23:16]s表示;位[15:8]x表示;位[7:0]c表示;MSR指令中指明MSRCPSR,R0 ;傳送R0的內(nèi)容到CPSRMSR ;傳送R0的內(nèi)容到MSR ARM微處理器支持加載/指令用于在寄存器和器之間傳送數(shù)據(jù)加載指令用于將存儲器中的數(shù)據(jù)傳送到寄存器,指令則完成相反的操作。常用的加載指令如下: LDRBLDRH STRB字節(jié)數(shù)據(jù)指STRH半字數(shù)據(jù)指1、LDRLDRLDR{條件}目的寄存器,<器地址LDR指令用于從器中將一個32位的字數(shù)據(jù)傳送到目的寄存器中。該指令通常用于從存儲器中32位的字數(shù)據(jù)到通用寄存器,然后對數(shù)據(jù)進行處理。當(dāng)程序計數(shù)器PC作為目的寄存器時指令從器中的字數(shù)據(jù)被當(dāng)作目的地址從而可以實現(xiàn)程序流程的跳轉(zhuǎn)。 ;將器地址為R1的字數(shù)據(jù)讀入寄存器R0。 ;將器地址為R1+R2的字數(shù)據(jù)讀入寄存器R0。 ;將器地址為R1+8的字數(shù)據(jù)讀入寄存器R0。 R0,[R1,R2]! R1+R2R1。 R0,[R1,#8]! ;將器地址為R1+8的字數(shù)據(jù)讀入寄存器R0,并將新R1+8R1。 ;將器地址為R1的字數(shù)據(jù)讀入寄存器R0,并將新地址R1+R2R1。 R0,[R1,R2,LSL#2]?。粚⑵鞯刂窞镽1+R2×4的字數(shù)據(jù)讀入寄存器R0,R1+R2×4R1。 ;將器地址為R1的字數(shù)據(jù)讀入寄存器R0,并將新地R1+R2×4R1。2、LDRBLDRBLDR{條件}B目的寄存器,<器地址LDRB指令用于從器中將一個8位的字節(jié)數(shù)據(jù)傳送到目的寄存器中同時將寄存器的高24位清零。該指令通常用于從器中8位的字節(jié)數(shù)據(jù)到通用寄存器,然后對數(shù)據(jù)進 LDRBR0,[R1,#8];將器地址為R1+8的字節(jié)數(shù)據(jù)讀入寄存器R0,并將243、LDRHLDRHLDR{條件}H目的寄存器,<器地址LDRH指令用于從器中將一個16位的半字數(shù)據(jù)傳送到目的寄存器中,同時將寄存器的高16位清零該指令通常用于從器中16位的半字數(shù)據(jù)到通用寄存器,然后對數(shù)據(jù) 16 ;將器地址為R1+R2的半字數(shù)據(jù)讀入寄存器R0,并將R016位清零。4、STRSTRSTR{條件}源寄存器,<器地址STR指令用于從源寄存器中將一個32位的字數(shù)據(jù)傳送到器中。該指令在程序設(shè)計中比較常用,且尋址方式靈活多樣,使用方式可參考指令LDR。STRR0,[R1],#8;將R0中的字數(shù)據(jù)寫入以R1為地址的器中,并將新地址STRR0,[R1,#8];將R0中的字數(shù)據(jù)寫入以R1+8為地址的器中5、STRBSTRBSTR{條件}B源寄存器,<器地址8位。 6、STRHSTRHSTR{條件}H源寄存器,<器地址STRH指令用于從源寄存器中將一個16位的半字數(shù)據(jù)傳送到器中。該半字數(shù)據(jù)為源寄16位。 ;將寄存器R0中的半字數(shù)據(jù)寫入以R1為地址的器中 ARM微處理器所支持批量數(shù)據(jù)加載/指令可以一次在一片連續(xù)的器單元和多個寄LDM—STM批量數(shù)據(jù)指LDM(或STM)LDM(或STM)LDM(或STM){條件}{類型}基址寄存器{!},寄存器列表LDM(或STM)指令用于從由基址寄存器所指示的一片連續(xù)器到寄存器列表所指示的IA1;IB1;DA1;DB1;FD滿遞減堆棧;ED空遞減堆棧;FA滿遞增堆棧;EA的數(shù)據(jù)傳送之外,還將SPSR到CPSR。同時,該后綴還表示傳入或傳出的是用戶模式 ;將寄存器列表中的寄存器(R0,R4R12,LR) R12,LRARM微處理器所支持數(shù)據(jù)交換指令能在器和寄存器之間交換數(shù)據(jù)。數(shù)據(jù)交換指令有如SWPSWPB1、SWPSWPSWP{條件}1,[SWP指令用于將源寄存器2所指向的器中的字數(shù)據(jù)傳送到目的寄存器中,同時將源寄為同一個寄存器時,指令交換該寄存器和器的內(nèi)容。SWPR0,R1,[R2] ;將R2所指向的器中的字數(shù)據(jù)傳送到R0,同時將R1中的字數(shù)據(jù)傳送到R2所指向的單元。SWPR0,R0,[R1] ;該指令完成將R1所指向的器中的字數(shù)據(jù)與R0中的字數(shù)2、SWPBSWPBSWP{條件}B1,[SWPB指令用于將源寄存器2所指向的器中的字節(jié)數(shù)據(jù)傳送到目的寄存器中目的寄存器的高24清零,同時將源寄存器1中的字節(jié)數(shù)據(jù)傳送到源寄存器2所指向的器中。顯然,當(dāng)源寄存器1和目的寄存器為同一個寄存器時,指令交換該寄存器和器的內(nèi)容。 ;將R2所指向的器中的字節(jié)數(shù)據(jù)傳送到R0,R0的24位清零,同時將R1中的低8位數(shù)據(jù)傳送到R2所指向的單元 ;該指令完成將R1所指向的器中的字節(jié)數(shù)據(jù)與R0中的8位數(shù)據(jù)交換。ShifterARM指令集中單獨的指令使用,它只能作為指令格式中是一個字段,在匯編語言中6種類型,ASLLSL是等價的,可以LSLASL 1、LSL(或ASL)操作LSL(ASL)操作的格式為:通用寄存器,LSL(或ASL)(0~31 R0,R1, R1R02、LSRLSR通用寄存器,LSRLSR可完成對通用寄存器中的內(nèi)容進行右移的操作,按操作數(shù)所指定的數(shù)量向右移位,左(0~31 R0,R1, 3、ASRASR通用寄存器,ASRASR可完成對通用寄存器中的內(nèi)容進行右移的操作,按操作數(shù)所指定的數(shù)量向右移位,左31位的值來填充。其中,操作數(shù)可以是通用寄存器,也可以是立即數(shù)(0~31 R0,R1,ASR#2 4、RORROR通用寄存器,RORROR可完成對通用寄存器中的內(nèi)容進行循環(huán)右移的操作,按操作數(shù)所指定的數(shù)量向右循環(huán)3132位的循環(huán)右移操作時,通用寄存器中的值不改變。 R0,R1, R1R05、RRXRRX通用寄存器,RRXRRX可完成對通用寄存器中的內(nèi)容進行帶擴展的循環(huán)右移的操作,按操作數(shù)所指定的數(shù)量C來填充。其中,操作數(shù)可以是通用寄存器,也可以是(0~31 R0,R1, 個協(xié)處理器只執(zhí)行針對自身的協(xié)處理指令,忽略ARM處理器和其他協(xié)處理器的指令。ARMARMARM協(xié)處理器的數(shù)據(jù)處理操作,以及ARMARM協(xié)處理器的寄存器和器之間傳送數(shù)據(jù)。ARM協(xié)處理器指令包括以下5條:CDP 1、CDPCDP2。CDP指令用于ARM處理器通知ARM協(xié)處理器執(zhí)行特定的操作,若協(xié)處理器不能成功完成特CDP 2、LDCLDCLDC{條件}{L}協(xié)處理器編碼,目的寄存器,[源寄存器LDC指令用于將源寄存器所指向的器中的字數(shù)據(jù)傳送到目的寄存器中,若協(xié)處理器不 P3C4中。3、STCSTCSTC{條件}{L}協(xié)處理器編碼,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職核工程與核技術(shù)應(yīng)用(核設(shè)施運行基礎(chǔ))試題及答案
- 2025年中職(增材制造技術(shù)應(yīng)用)零件打印工藝試題及答案
- 2025年大學(xué)(智慧農(nóng)業(yè)技術(shù))農(nóng)業(yè)智能化綜合測試試題及答案
- 2025年中職家庭教育(家庭教育基礎(chǔ))試題及答案
- 2025年高職大數(shù)據(jù)技術(shù)(數(shù)據(jù)操作規(guī)范)試題及答案
- 2025年大學(xué)大四(應(yīng)急管理)應(yīng)急物資儲備管理試題及答案
- 2025年中職(會計)財務(wù)管理階段測試題及答案
- 2025年大學(xué)動物醫(yī)學(xué)(寵物疾病預(yù)防)試題及答案
- 2025年高職農(nóng)村電氣技術(shù)(農(nóng)村電網(wǎng)建設(shè))試題及答案
- 2025年高職新聞學(xué)(新聞攝影)試題及答案
- 2025-2026學(xué)年人教版七年級上冊道德與法治期末試卷(含答案和解析)
- 無錫公建工程質(zhì)量檢測有限公司2025年下半年公開招聘專業(yè)技術(shù)人員備考題庫及答案詳解一套
- 北京市平谷區(qū)政務(wù)服務(wù)中心綜合工作人員招聘筆試備考題庫及答案解析
- 2026年高級會計師面試題及答案解析
- 安全注射標(biāo)準2025
- 安全文明施工措施費用支付計劃三篇
- 人教版九年級化學(xué)導(dǎo)學(xué)案全冊
- 國開電大商業(yè)銀行經(jīng)營管理形考作業(yè)3參考答案
- 陳獨秀早期社會建設(shè)思想的形成、淵源及啟迪,東方哲學(xué)論文
- GB/T 1865-2009色漆和清漆人工氣候老化和人工輻射曝露濾過的氙弧輻射
- 2023年自考高級財務(wù)會計真題和答案
評論
0/150
提交評論