版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
嵌入式系統(tǒng)設(shè)計(jì)第四章ARM處理器編程模型與指令系統(tǒng)
主要內(nèi)容4.1ARM微處理器的工作狀態(tài)4.2ARM微處理器的運(yùn)行模式4.3ARM體系結(jié)構(gòu)的存儲器格式4.4寄存器組織4.5ARM的異常4.6ARM微處理器的指令系統(tǒng)基礎(chǔ)4.7ARM指令的尋址方式4.8ARM指令集4.9Thumb指令及應(yīng)用4.1ARM微處理器的工作狀態(tài)從編程的角度看,ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:ARM狀態(tài):此時處理器執(zhí)行32位的字對齊的ARM指令Thumb狀態(tài):此時處理器執(zhí)行16位的、半字對齊的Thumb指令4.1ARM微處理器的工作狀態(tài)ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,并可在兩種工作狀態(tài)之間切換,但ARM微處理器在開始執(zhí)行代碼時,應(yīng)該處于ARM狀態(tài)進(jìn)入ARM狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為0時,執(zhí)行BX指令時可以使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。進(jìn)入Thumb狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時,可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。
處理器的工作狀態(tài)例:從ARM狀態(tài)切換到Thumb狀態(tài):LDRR0,=Label+1BXR0從Thumb狀態(tài)切換到ARM狀態(tài):LDRR0,=LabelBXR0主要內(nèi)容4.1ARM微處理器的工作狀態(tài)4.2ARM微處理器的運(yùn)行模式4.3ARM體系結(jié)構(gòu)的存儲器格式4.4寄存器組織4.5ARM的異常4.6ARM微處理器的指令系統(tǒng)基礎(chǔ)4.7ARM指令的尋址方式4.8ARM指令集4.9Thumb指令及應(yīng)用4.2ARM微處理器的運(yùn)行模式ARM微處理器支持7種運(yùn)行模式,分別為:1.用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài);2.快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理;3.外部中斷模式(irq):用于通用的中斷處理;4.管理模式(supervisor):操作系統(tǒng)使用的保護(hù)模式;5.數(shù)據(jù)訪問終止模式(abort):當(dāng)數(shù)據(jù)或指令預(yù)取終止時進(jìn)入該模式,可用于虛擬存儲及存儲保護(hù);6.系統(tǒng)模式(system):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù);7.未定義指令中止模式(undefined):當(dāng)未定義的指令執(zhí)行時進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。4.2ARM微處理器的運(yùn)行模式除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權(quán)模式(PrivilegedModes);除用戶模式和系統(tǒng)模式以外的5種又稱為異常模式(ExceptionModes),常用于處理中斷或異常,以及需要訪問受保護(hù)的系統(tǒng)資源等情況。處理器模式說明備注用戶(usr)正常程序執(zhí)行模式不能直接切換到其它模式系統(tǒng)(sys)運(yùn)行操作系統(tǒng)的特權(quán)任務(wù)與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時進(jìn)入此模式中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)模式系統(tǒng)復(fù)位和軟件中斷響應(yīng)時進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存儲器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時進(jìn)入此模式處理器工作模式ARM處理器有7種工作模式主要內(nèi)容4.1ARM微處理器的工作狀態(tài)4.2ARM微處理器的運(yùn)行模式4.3ARM體系結(jié)構(gòu)的存儲器格式4.4寄存器組織4.5ARM的異常4.6ARM微處理器的指令系統(tǒng)基礎(chǔ)4.7ARM指令的尋址方式4.8ARM指令集4.9Thumb指令及應(yīng)用4.3ARM體體系系結(jié)結(jié)構(gòu)構(gòu)的的存存儲儲器器格格式式ARM體體系系結(jié)結(jié)構(gòu)構(gòu)可可以以用用兩兩種種方方法法存存儲儲字字?jǐn)?shù)數(shù)據(jù)據(jù)大端端格格式式:字?jǐn)?shù)數(shù)據(jù)據(jù)的的高高字字節(jié)節(jié)存存儲儲在在低低地地址址中中,,而而字字?jǐn)?shù)數(shù)據(jù)據(jù)的的低低字字節(jié)節(jié)則則存存放放在在高高地地址址中中。。4.3ARM體體系系結(jié)結(jié)構(gòu)構(gòu)的的存存儲儲器器格格式式ARM體體系系結(jié)結(jié)構(gòu)構(gòu)可可以以用用兩兩種種方方法法存存儲儲字字?jǐn)?shù)數(shù)據(jù)據(jù)小端端格格式式:與大大端端存存儲儲格格式式相相反反,,在在小小端端存存儲儲格格式式中中,,低低地地址址中中存存放放的的是是字字?jǐn)?shù)數(shù)據(jù)據(jù)的的低低字字節(jié)節(jié),,高高地地址址存存放放的的是是字字?jǐn)?shù)數(shù)據(jù)據(jù)的的高高字字節(jié)節(jié)。。示例A.小小端端存儲儲法(0x01234567)地址0x80000x80010x80020x8003數(shù)據(jù)(16進(jìn)制表示)0x670x450x230x01數(shù)據(jù)(二進(jìn)制表示)01100111010001010010001100000001B.大大端端存儲儲法地址0x80000x80010x80020x8003數(shù)據(jù)(16進(jìn)制表示)0x010x230x450x67數(shù)據(jù)(二進(jìn)制表示)00000001001000110100010101100111主要內(nèi)內(nèi)容4.1ARM微處處理器器的工工作狀狀態(tài)4.2ARM微處處理器器的運(yùn)運(yùn)行模模式4.3ARM體系系結(jié)構(gòu)構(gòu)的存存儲器器格式式4.4寄寄存器器組織織4.5ARM的異異常4.6ARM微處處理器器的指指令系系統(tǒng)基基礎(chǔ)4.7ARM指令令的尋尋址方方式4.8ARM指令令集4.9Thumb指令令及應(yīng)應(yīng)用4.4寄寄存器器組織織4.4.1ARM狀態(tài)態(tài)下的的寄存存器組組織通用寄寄存器器:通用用寄存存器包包括R0~R15,,可以以分為為三類類:未分組組寄存存器R0~R7分組寄寄存器器R8~R14程序計(jì)計(jì)數(shù)器器PC(R15)ARM狀態(tài)態(tài)下的的寄存存器組組織處理器器工作作模式式特權(quán)模模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)的特權(quán)任務(wù)等與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時進(jìn)入此模式中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)代碼系統(tǒng)復(fù)位和軟件中斷響應(yīng)時進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存儲器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時進(jìn)入此模式除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計(jì)上只允許(或者可選為只允許)特權(quán)模式下訪問。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。未定義(und)中止(abt)管理(svc)中斷(irq)快中斷(fiq)系統(tǒng)(sys)處理器器工作作模式式用戶和和系統(tǒng)統(tǒng)模式式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)的特權(quán)任務(wù)等與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時進(jìn)入此模式中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)代碼系統(tǒng)復(fù)位和軟件中斷響應(yīng)時進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存儲器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時進(jìn)入此模式這兩種模式都不能由異常進(jìn)入,而且它們使用完全相同的寄存器組。系統(tǒng)模式是特權(quán)模式,不受用戶模式的限制。操作系統(tǒng)在該模式下訪問用戶模式的寄存器就比較方便,而且操作系統(tǒng)的一些特權(quán)任務(wù)可以使用這個模式訪問一些受控的資源。系統(tǒng)(sys)用戶(usr)寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiq*R9(SB,v6)R9R9_fiq*R10(SL,v7)R10R10_fiq*R11(FP,v8)R11R11_fiq*R12(IP)R12R12_fiq*R13(SP)R13R13_svc*R13_abt*R13_und*R13_irq*R13_fiq*R14(LR)R14R14_svc*R14_abt*R14_und*R14_irq*R14_fiq*R15(PC)R15狀態(tài)寄存器R16(CPSR)CPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)態(tài)各模模式下下的寄寄存器器寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)態(tài)各模模式下下的寄寄存器器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的的37個寄寄存器器,分分成兩兩大類類:31個個通用用32位寄寄存器器;6個狀狀態(tài)寄寄存器器。寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用戶無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系統(tǒng)SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定義SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中斷SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中斷ARM狀態(tài)態(tài)各模模式下下可以以訪問問的寄寄存器器寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的的通用用寄存存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0在匯編編語言言中寄寄存器器R0~R13為保保存數(shù)數(shù)據(jù)或或地址址值的的通用寄寄存器器。它們們是完完全通通用的的寄存存器,,不會會被體體系結(jié)結(jié)構(gòu)作作為特特殊用用途,,并且且可用用于任任何使使用通通用寄寄存器器的指指令。。寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的的通用用寄存存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0其中R0~~R7為未分組組的寄寄存器器,也就就是說說對于于任何何處理理器模模式,,這些些寄存存器都都對應(yīng)應(yīng)于相相同的的32位物物理寄寄存器器。寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的的通用用寄存存器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8寄存器器R8~R14為分組寄寄存器器。它們們所對對應(yīng)的的物理理寄存存器取取決于于當(dāng)前前的處處理器器模式式,幾幾乎所所有允允許使使用通通用寄寄存器器的指指令都都允許許使用用分組組寄存存器寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的的通用用寄存存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8寄存器器R8~R12有兩兩個分分組的的物理理寄存存器。。一個個用于于除FIQ模式式之外外的所所有寄寄存器器模式式,另另一個個用于于FIQ模模式。。這樣樣在發(fā)發(fā)生FIQ中斷斷后,,可以以加速速FIQ的的處理理速度度。寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的的通用用寄存存器寄存器器R13、、R14分分別有有6個個分組組的物物理寄寄存器器。一一個用用于用用戶和和系統(tǒng)統(tǒng)模式式,其其余5個分分別用用于5種異異常模模式。。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆棧指指針寄寄存器器R13((SP)寄存器器R13常常作為為堆棧指指針(SP)。。在ARM指令令集當(dāng)當(dāng)中,,沒有有以特特殊方方式使使用R13的指指令或或其它它功能能,只只是習(xí)習(xí)慣上上都這這樣使使用。。但是是在Thumb指令令集中中存在在使用用R13的的指令令。寄存器類別寄存器在匯編中的名稱各模式下實(shí)際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq鏈接寄寄存器器R14((LR)R14為鏈接寄寄存器器(LR),,在結(jié)結(jié)構(gòu)上上有兩兩個特特殊功功能::在每種種模式式下,,模式式自身身的R14版本本用于于保存存子程程序返返回地地址;;當(dāng)發(fā)生生異常常時,,將R14對應(yīng)應(yīng)的異異常模模式版版本設(shè)設(shè)置為為異常常返回回地址址(有有些異異常有有一個個小的的固定定偏移移量))。4.4寄寄存器器組織織4.4.1ARM狀態(tài)態(tài)下的的寄存存器組組織狀態(tài)寄存器器當(dāng)前程程序狀狀態(tài)寄寄存器器(CurrentProgramStatusRegister,CPSR))備份的的程序序狀態(tài)態(tài)寄存存器((SavedProgramStatusRegister,,SPSR)4.4寄寄存器器組織織程序狀狀態(tài)寄寄存器器格式式4.4寄寄存器器組織織4.4.2Thumb狀態(tài)態(tài)下的的寄存存器組組織Thumb狀態(tài)態(tài)下的的寄存存器集集是ARM狀態(tài)態(tài)下寄寄存器器集的的一個個子集集,程程序可可以直直接訪訪問8個通通用寄寄存器器(R7~R0)、、程序序計(jì)數(shù)數(shù)器((PC)、、堆棧棧指針針(SP))、連連接寄寄存器器(LR))和CPSR。。Thumb狀態(tài)態(tài)下的的寄存存器組組織與與ARM狀狀態(tài)下下的寄寄存器器組織織的關(guān)關(guān)系4.4寄寄存器器組織Thumb狀態(tài)態(tài)下的寄寄存器組組織與ARM狀狀態(tài)下的的寄存器器組織的的關(guān)系::Thumb狀態(tài)態(tài)下和ARM狀狀態(tài)下的的R0~R7是是相同的的;Thumb狀態(tài)態(tài)下的SP對應(yīng)應(yīng)于ARM狀態(tài)態(tài)下的R13;;Thumb狀態(tài)態(tài)下的LR對應(yīng)應(yīng)于ARM狀態(tài)態(tài)下的R14;;Thumb狀態(tài)態(tài)下的程程序計(jì)數(shù)數(shù)器對應(yīng)應(yīng)于ARM狀態(tài)態(tài)下R15;Thumb狀態(tài)態(tài)下和ARM狀狀態(tài)下的的CPSR和所所有的SPSR是相同同的Thumb狀態(tài)態(tài)下的寄寄存器組組織主要內(nèi)容容4.1ARM微處理理器的工工作狀態(tài)態(tài)4.2ARM微處理理器的運(yùn)運(yùn)行模式式4.3ARM體系結(jié)結(jié)構(gòu)的存存儲器格格式4.4寄寄存器器組織4.5ARM的異常常4.6ARM微處理理器的指指令系統(tǒng)統(tǒng)基礎(chǔ)4.7ARM指令的的尋址方方式4.8ARM指令集集4.9Thumb指指令及應(yīng)應(yīng)用4.5ARM的異常常當(dāng)正常的的程序執(zhí)執(zhí)行流程程發(fā)生暫暫時的停停止時,,稱之為為異常。在處理異異常之前前,當(dāng)前前處理器器的狀態(tài)態(tài)必須保保留處理器允允許多個個異常同同時發(fā)生生,它們們將會按按固定的的優(yōu)先級級進(jìn)行處處理異常與中中斷的概概念并不不完全等等同4.5ARM的異常常體體系結(jié)構(gòu)構(gòu)所支持持的異常常類型在ARM體系結(jié)結(jié)構(gòu)中,,異常中中斷用來來處理軟軟件中斷斷、未定定義指令令陷阱((不是真真正的““意外””事件))、系統(tǒng)統(tǒng)復(fù)位功功能(在在邏輯上上發(fā)生在在程序執(zhí)執(zhí)行前而而不是程程序執(zhí)行行中)和和外部事事件。這這些“不不正?!薄笔录级急粍潥w歸“異常?!?,因因?yàn)樵谔幪幚砥鞯牡目刂茩C(jī)機(jī)制中,,它們都都使用同同樣的流流程進(jìn)行行異常處處理。4.5ARM的異常常ARM異異常按引引起異常常事件的的不同可可分為以以下3類類:指令執(zhí)行行引起的的直接異異常指令執(zhí)行行引起的的間接異異常外部產(chǎn)生生的與指指令流無無關(guān)的異異常異常類型具體含義復(fù)位(RESET)當(dāng)處理器的復(fù)位電平有效時,產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位異常處理程序處執(zhí)行。未定義指令(UDEF)當(dāng)ARM處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生未定義指令異常??墒褂迷摦惓C(jī)制進(jìn)行軟件仿真。軟件中斷(SWI)該異常由執(zhí)行SWI指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權(quán)操作指令??墒褂迷摦惓C(jī)制實(shí)現(xiàn)系統(tǒng)功能調(diào)用。指令預(yù)取中止(PABT)若處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問,存儲器會向處理器發(fā)出中止信號,但當(dāng)預(yù)取的指令被執(zhí)行時,才會產(chǎn)生指令預(yù)取中止異常。數(shù)據(jù)中止(DABT)若處理器數(shù)據(jù)訪問指令的地址不存在,或該地址不允許當(dāng)前指令訪問時,產(chǎn)生數(shù)據(jù)中止異常。外部中斷請求(IRQ)當(dāng)處理器的外部中斷請求引腳有效,且CPSR中的I位為0時,產(chǎn)生IRQ異常。系統(tǒng)的外設(shè)可通過該異常請求中斷服務(wù)??焖僦袛嗾埱螅‵IQ)當(dāng)處理器的快速中斷請求引腳有效,且CPSR中的F位為0時,產(chǎn)生FIQ異常。ARM體體系結(jié)構(gòu)構(gòu)所支持持的異常常異常向量量(ExceptionVectors)地址異常進(jìn)入模式0x0000,0000復(fù)位管理模式0x0000,0004未定義指令未定義模式0x0000,0008軟件中斷管理模式0x0000,000C中止(預(yù)取指令)中止模式0x0000,0010中止(數(shù)據(jù))中止模式0x0000,0014保留保留0x0000,0018IRQIRQ0x0000,001CFIQFIQ4.5ARM的異常常對對異常的的響應(yīng)ARM微微處理器器對異常常的響應(yīng)應(yīng)過程如如下:1、將下下一條指指令的地地址存入入相應(yīng)的的連接寄寄存器LR,以以便程序序在處理理異常返返回時能能從正確確的位置置重新開開始執(zhí)行行;2、將CPSR復(fù)制到到相應(yīng)的的SPSR中;;3、設(shè)置置當(dāng)前狀狀態(tài)寄存存器CPSR中中的相應(yīng)應(yīng)位;4、給程程序計(jì)數(shù)數(shù)器(PC)強(qiáng)強(qiáng)制賦值值,使程程序從相相應(yīng)的異異常向量量地址開開始執(zhí)行行中斷處處理程序序;4.5ARM的異常常從從異常返返回ARM微微處理器器會執(zhí)行行以下操操作從異異常返回回:1、所有有修改過過的用戶戶寄存器器必須從從處理程程序的保保護(hù)堆棧棧中恢復(fù)復(fù)(出棧棧);2、將連連接寄存存器LR的值減減去相應(yīng)應(yīng)的偏移移量送到到PC中中;3、將SPSR_mode寄寄存器內(nèi)內(nèi)容復(fù)制制回CPSR中中,使得得CPSR從相相應(yīng)的SPSR中恢復(fù)復(fù),即恢恢復(fù)被中中斷的程程序工作作狀態(tài);;4、若在在進(jìn)入異異常處理理時設(shè)置置了中斷斷禁止位位,要在在此清除除。4.5ARM的異常常從從異常返返回為確保指指令總是是按正確確的操作作模式讀讀取,以以保證存存儲器保保護(hù)方案案不被繞繞過,還還有更加加微妙的的困難。。因此,,ARM提供了了2種返返回處理理機(jī)制第一種機(jī)機(jī)制:返返回地址址保存在在R14;第二種機(jī)機(jī)制:異異常處理理程序把把返回地地址拷貝貝到堆棧棧(在這這種情況況下,SPSR也和PC一樣樣必須保保存),,可使用用一條多多寄存器器傳送指指令來恢恢復(fù)用戶戶寄存器器,并實(shí)實(shí)現(xiàn)返回回:4.5ARM的異常常各各類異常常的具體體描述1、未定定義指令令異常((UndefinedInstruction)2、軟件件中斷異異常(SoftwareInterrupt))3、中止止異常((Abort))4、快速速中斷請請求異常常(FastInterruptRequest,,F(xiàn)IQ)5、外部部中斷請請求異常常(InterruptRequest,IRQ))4.5ARM的異常常異異常的進(jìn)進(jìn)入/退退出異常類型返回指令以前的狀態(tài)注意ARMR14_xThumbR14_xBLMOVPC,R14PC+4PC+21UDEFMOVSPC,R14_undPC+4PC+21SWIMOVSPC,R14_svcPC+4PC+21PABTSUBSPC,R14_abt,#4PC+4PC+41DABTSUBSPC,R14_abt,#8PC+8PC+83FIQSUBSPC,R14_fiq,#4PC+4PC+42IRQSUBSPC,R14_irq,#4PC+4PC+42RESETNA--44.5ARM的異常常異異常優(yōu)先先級(ExceptionPriorities)優(yōu)先級異常1(最高)復(fù)位2數(shù)據(jù)中止3FIQ4IRQ5預(yù)取指令中止6(最低)未定義指令、SWI主要內(nèi)容容4.1ARM微處理理器的工工作狀態(tài)態(tài)4.2ARM微處理理器的運(yùn)運(yùn)行模式式4.3ARM體系結(jié)結(jié)構(gòu)的存存儲器格格式4.4寄寄存器組織織4.5ARM的異異常4.6ARM微處處理器的指指令系統(tǒng)基基礎(chǔ)4.7ARM指令令的尋址方方式4.8ARM指令令集4.9Thumb指令及應(yīng)應(yīng)用4.6ARM微處處理器的指指令系統(tǒng)基基礎(chǔ)4.6.1指令長長度及數(shù)據(jù)據(jù)類ARM微處處理器的指指令長度可可以是32位(在在ARM狀狀態(tài)下),也可以為16位(在在Thumb狀態(tài)下下)。ARM微處處理器中支支持字節(jié)(8位位)、半字(16位)、字(32位位)三種數(shù)據(jù)類類型,其中中,字需要要4字節(jié)對對齊(地址址的低兩位位為0)、、半字需要要2字節(jié)對對齊(地址址的最低位位為0)。。4.6ARM微處處理器的指指令系統(tǒng)基基礎(chǔ)4.6.2ARM微處理理器的指令令的分類與與格式指令分類簡簡述ARM微處處理器指令令集是加載載/存儲型型的;ARM微處處理器的指指令集可以以分為跳轉(zhuǎn)指令、數(shù)據(jù)處理指指令、程序狀態(tài)寄寄存器處理理指令、Load/Store指令、協(xié)處理器指指令和異常產(chǎn)生指令六大類類;4.6ARM微處處理器的指指令系統(tǒng)基基礎(chǔ)4.6.2ARM微處理理器的指令令的分類與與格式指令格式ARM指令令使用的基基本格式::<opcode>{<cond>}{S}<Rd>,<Rn>{,<operand2>}4.6ARM微處處理器的指指令系統(tǒng)基基礎(chǔ)4.6.2ARM微處理理器的指令令的分類與與格式指令格式使使用舉例:LDRR0,[R1]BEQDATAEVENADDSR2,,R1,#1SUBNESR2,R1,#0x20指令的條件件域條件碼助記符后綴標(biāo)志含義0000EQZ置位相等0001NEZ清零不相等0010CSC置位無符號數(shù)大于或等于0011CCC清零無符號數(shù)小于0100MIN置位負(fù)數(shù)0101PLN清零正數(shù)或零0110VSV置位溢出0111VCV清零未溢出1000HIC置位Z清零無符號數(shù)大于1001LSC清零Z置位無符號數(shù)小于或等于1010GEN等于V帶符號數(shù)大于或等于1011LTN不等于V帶符號數(shù)小于1100GTZ清零且(N等于V)帶符號數(shù)大于1101LEZ置位或(N不等于V)帶符號數(shù)小于或等于1110AL忽略無條件執(zhí)行主要內(nèi)容4.1ARM微處處理器的工工作狀態(tài)4.2ARM微處處理器的運(yùn)運(yùn)行模式4.3ARM體系系結(jié)構(gòu)的存存儲器格式式4.4寄寄存器組織織4.5ARM的異異常4.6ARM微處處理器的指指令系統(tǒng)基基礎(chǔ)4.7ARM指令令的尋址方方式4.8ARM指令令集4.9Thumb指令及應(yīng)應(yīng)用4.7ARM指令令的尋址方方式4.7.1立即尋尋址也叫立即數(shù)尋址址,是一種特特殊的尋址址方式,操操作數(shù)本身身就在指令令中給出,,只要取出出指令也就就取到了操操作數(shù)。這這個操作數(shù)數(shù)被稱為立立即數(shù),對對應(yīng)的尋址址方式也就就叫做立即即尋址。例如以下指指令:ADDR0,R0,#1 ;R0←R0++1ADDR0,R0,#0x3f;;R0←←R0+0x3f4.7ARM指令令的尋址方方式4.7.2寄存器器尋址寄存器尋址址就是利用寄寄存器中的的數(shù)值作為為操作數(shù),,指令中地地址碼給出出的是寄存存器編號。。例如以下指指令:ADDR0,R1,R2;;R0←←R1+R24.7ARM指令令的尋址方方式4.7.3寄存器器間接尋址址寄存器間接接尋址就是以寄存存器中的值值作為操作作數(shù)的地址址(這個寄寄存器相當(dāng)當(dāng)于指針的的作用,在在基址加變變址的尋址址方式中,,它作為基基址寄存器器來存放基基址地址)),而操作作數(shù)本身存存放在存儲儲器中。例如以下指指令:ADDR0,R1,[R2];;R0←R1+[R2]LDRR0,[R1];;R0←[R1]STRR0,[R1];;[R1]←R04.7ARM指令令的尋址方方式4.7.4基址變變址尋址基址變址尋尋址就是將將寄存器((該寄存器器一般稱作作基址寄存存器)的內(nèi)內(nèi)容與指令令中給出的的地址偏移移量相加,,從而得到到一個操作作數(shù)的有效效地址,用用于訪問基基址附近的的存儲器單單元。4.7ARM指令令的尋址方方式4.7.4基址變變址尋址變址尋址方方式可分為為:前變址模式式LDRR0,[R1,#4];;R0←[R1+4]自動變址模模式LDRR0,[R1,#4]??;;R0←[R1+4]、R1←R1++4后變址模式式LDRR0,[R1],,#4;;R0←[R1]、R1←R1+4偏移地址LDRR0,[R1,R2];;R0←[R1+R2]LDRR0,[R1,R2,LSL#2];;R0←[R1+R2*4]4.7ARM指令令的尋址方方式4.7.5多寄存存器尋址多寄存器尋尋址又稱為為塊拷貝尋尋址,是多多寄存器傳傳送指令Load/Store的尋址址方式,Load/Store指令可可把存儲器器中的一個個數(shù)據(jù)塊加加載到多個個寄存器中中,也可把把多個寄存存器中的內(nèi)內(nèi)容保存到到存儲器中中。例如以下指指令:LDMIAR0,{R1,R2,,R3,R4};;R1←[R0];R2←[R0+4];R3←[R0+8];R4←[R0+12]多寄存器Load和和Store指令的的堆棧和塊塊拷貝對照照遞增遞減滿空滿空增值先增STMIBSTMFALDMIBLDMED后增STMIASTMEALDMIALDMFD減值先減LDMDBLDMEASTMDBSTMFD后減LDMDALDMFASTMDASTMED4.7ARM指令的尋尋址方式堆堆棧尋址址堆棧是一種數(shù)數(shù)據(jù)結(jié)構(gòu),按按先進(jìn)后出((FirstInLastOut,F(xiàn)ILO)的方方式工作,使使用一個稱作作堆棧指針((SP)的專專用寄存器指指示當(dāng)前的操操作位置,堆堆棧指針總是是指向棧頂。。4.7ARM指令的尋尋址方式堆堆棧尋址址根據(jù)堆棧指針針位置,分為為:滿堆棧(FullStack):堆棧指針指指向最后壓入入堆棧的數(shù)據(jù)據(jù);空堆棧(EmptyStack)):堆棧指針指指向下一個將將要放入數(shù)據(jù)據(jù)的空位置;根據(jù)堆棧的生生成方式,,分為:遞增堆棧(AscendingStack)):堆棧由低地地址向高地址址生成遞減堆棧(DecendingStack)):堆棧由高地地址向低地址址生成4.7ARM指令的尋尋址方式堆堆棧尋址址ARM微處理理器支持這四四種類型的堆堆棧工作方式式:滿遞增堆棧:堆棧指針指指向最后壓入入的數(shù)據(jù),且且由低地址向向高地址生成成;滿遞減堆棧:堆棧指針指指向最后壓入入的數(shù)據(jù),且且由高地址向向低地址生成成;空遞增堆棧:堆棧指針指指向下一個將將要放入數(shù)據(jù)據(jù)的空位置,,且由低地址址向高地址生生成;空遞減堆棧:堆棧指針指指向下一個將將要放入數(shù)據(jù)據(jù)的空位置,,且由高地址址向低地址生生成;4.7ARM指令的尋尋址方式堆堆棧尋址址在ARM指令令中,堆棧尋尋址也是通過過Load/Store指令來實(shí)現(xiàn)現(xiàn)的,例如如:STMFDSP!{R1-R7,LR};將將R1~R7,LR入棧棧LDMFDSP!{R1-R7,LR};數(shù)據(jù)據(jù)出棧,放入入R1~R7,,LR寄存器器在Thumb指令中,堆堆棧尋址通過過PUSH/POP指令來實(shí)現(xiàn),,例如:PUSH{R1-R7,LR};;將R1~R7,LR入入棧POP{R1-R7,PC};;數(shù)據(jù)出棧棧,放入R1~R7,PC寄存器4.7ARM指令的尋尋址方式相相對尋址址與基址變址尋尋址方式相類類似,相對尋尋址以程序計(jì)計(jì)數(shù)器PC的的當(dāng)前值為基基地址,指令令中的地址標(biāo)標(biāo)號作為偏移移量,將兩者者相加之后得得到操作數(shù)的的有效地址。。4.7ARM指令的尋尋址方式相相對尋址址以下程序段完完成子程序的的調(diào)用和返回回,跳轉(zhuǎn)指令令BL采用了了相對尋址方方式:BLNEXT;跳跳轉(zhuǎn)到子程序序NEXT處處執(zhí)行……NEXT;;子程序入口口地址……MOVPC,LR;;從從子程序返回回主要內(nèi)容4.1ARM微處理器器的工作狀態(tài)態(tài)4.2ARM微處理器器的運(yùn)行模式式4.3ARM體系結(jié)構(gòu)構(gòu)的存儲器格格式4.4寄存存器組織4.5ARM的異常4.6ARM微處理器器的指令系統(tǒng)統(tǒng)基礎(chǔ)4.7ARM指令的尋尋址方式4.8ARM指令集4.9Thumb指令令及應(yīng)用4.8ARM指令集ARM指令集集總體分為六六大類:1、數(shù)數(shù)據(jù)處處理指指令;;2、程程序狀狀態(tài)寄寄存器器訪問問指令令;3、Load/Store指指令;;4、跳跳轉(zhuǎn)指指令((轉(zhuǎn)移移指令令);;5、異異常中中斷指指令;;6、協(xié)協(xié)處理理器指指令。。4.8ARM指令令集4.8.1數(shù)據(jù)據(jù)處理理指令令數(shù)據(jù)傳傳送指指令用于在在寄存存器和和存儲儲器之之間進(jìn)進(jìn)行數(shù)數(shù)據(jù)的的雙向向傳輸輸。算術(shù)邏邏輯運(yùn)運(yùn)算指指令完成常常用的的算術(shù)術(shù)與邏邏輯的的運(yùn)算算,該該類指指令不不但將將運(yùn)算算結(jié)果果保存存在目目的寄寄存器器中,,同時時更新新CPSR中的的相應(yīng)應(yīng)條件件標(biāo)志志位。。比較指令不保存運(yùn)算算結(jié)果,只只更新CPSR中相相應(yīng)的條件件標(biāo)志位。。4.8ARM指令令集數(shù)據(jù)處理指指令包括::SUB:減減法指令SBC:帶帶借位減法法指令RSB:逆逆向減法指指令RSC:帶帶借位逆向向減法指令令A(yù)ND:邏邏輯與指令令ORR:邏邏輯或指令令EOR:邏邏輯異或指指令BIC:位位清除指令令MOV:數(shù)數(shù)據(jù)傳送指指令MVN:數(shù)數(shù)據(jù)取反傳傳送指令CMP:比比較指令CMN:反反值比較指指令TST:位位測試指令令TEQ:相相等測試指指令A(yù)DD:加加法指令A(yù)DC:帶帶進(jìn)位加法法指令4.8ARM指令令集4.8.2乘法指指令與乘加加指令A(yù)RM微處處理器支持持的乘法指指令與乘加加指令共有有6條,可可分為運(yùn)算結(jié)果為為32位和運(yùn)算結(jié)果為為64位兩類,與前前面的數(shù)據(jù)據(jù)處理指令令不同,指令中的所所有操作數(shù)數(shù)、目的寄寄存器必須須為通用寄寄存器,不能對操操作數(shù)使用用立即數(shù)或或被移位的的寄存器,,同時,目的寄存器器和操作數(shù)數(shù)1必須是是不同的寄寄存器。4.8ARM指令令集乘法指令與與乘加指令令共有以下下6條:MUL:32位乘法法指令;MLA:32位乘加加指令;SMULL:64位位有符號數(shù)數(shù)乘法指令令;SMLAL:64位位有符號數(shù)數(shù)乘加指令令;UMULL:64位位無符號數(shù)數(shù)乘法指令令;UMLAL:64位位無符號數(shù)數(shù)乘加指令令。4.8ARM指令令集4.8.3程序序狀態(tài)寄存存器訪問指指令A(yù)RM微處處理器支持持程序狀態(tài)態(tài)寄存器訪訪問指令,,用于在程程序狀態(tài)寄寄存器和通通用寄存器器之間傳送送數(shù)據(jù)。程序狀態(tài)寄寄存器訪問問指令包括括以下兩條條:MRS:程程序狀態(tài)寄寄存器到通通用寄存器器的數(shù)據(jù)傳傳送指令;;MSR:通通用寄存器器到程序狀狀態(tài)寄存器器的數(shù)據(jù)傳傳送指令4.8ARM指令令集4.8.4加載載/存儲指指令A(yù)RM微處處理器支持持Load/Store指令令用于在寄寄存器和存存儲器之間間傳送數(shù)據(jù)據(jù),加載指指令用于將將存儲器中中的數(shù)據(jù)傳傳送到寄存存器,存儲儲指令則完完成相反的的操作。4.8ARM指令令集常用的Load/Store指令如下下:LDR::字?jǐn)?shù)據(jù)加加載指令;;LDRB::字節(jié)數(shù)據(jù)據(jù)加載指令令;LDRH::半字?jǐn)?shù)據(jù)據(jù)加載指令令;STR::字?jǐn)?shù)據(jù)據(jù)存儲指指令;STRB:字節(jié)節(jié)數(shù)據(jù)存存儲指令令;STRH:半字字?jǐn)?shù)據(jù)存存儲指令令4.8ARM指令集集批批量數(shù)數(shù)據(jù)加載載/存儲儲指令A(yù)RM微微處理器器所支持持批量數(shù)數(shù)據(jù)Load/Store指指令可以以一次在在一片連連續(xù)的存存儲器單單元和多多個寄存存器之間間傳送數(shù)數(shù)據(jù),批批量加載載指令用用于將一一片連續(xù)續(xù)的存儲儲器中的的數(shù)據(jù)傳傳送到多多個寄存存器,批批量數(shù)據(jù)據(jù)存儲指指令則完完成相反反的操作作。常用的批批量數(shù)據(jù)據(jù)Load/Store指令令如下::LDM::批量數(shù)數(shù)據(jù)加載載指令;;STM::批量數(shù)數(shù)據(jù)存儲儲指令4.8ARM指令集集跳跳轉(zhuǎn)指指令跳轉(zhuǎn)指令令用于實(shí)實(shí)現(xiàn)程序序流程的的跳轉(zhuǎn),,在ARM程序序中有兩兩種方法法可以實(shí)實(shí)現(xiàn)程序序流程的的跳轉(zhuǎn)::使用專門門的跳轉(zhuǎn)轉(zhuǎn)指令;;直接向程程序計(jì)數(shù)數(shù)器PC寫入跳跳轉(zhuǎn)地址址值。4.8ARM指令集集ARM指指令集中中的跳轉(zhuǎn)轉(zhuǎn)指令可可以完成成從當(dāng)前前指令向向前或向向后的32MB的地址址空間的的跳轉(zhuǎn),,包括以以下4條條指令::B:跳轉(zhuǎn)轉(zhuǎn)指令;;BL:帶帶返回的的跳轉(zhuǎn)指指令;BLX::帶返回回和狀態(tài)態(tài)切換的的跳轉(zhuǎn)指指令;BX:帶帶狀態(tài)切切換的跳跳轉(zhuǎn)指令令。4.8ARM指令集集數(shù)數(shù)據(jù)交交換指令令A(yù)RM微微處理器器所支持持?jǐn)?shù)據(jù)交交換指令令能在存存儲器和和寄存器器之間交交換數(shù)據(jù)據(jù)。數(shù)據(jù)據(jù)交換指指令有如如下兩條條:SWP::字?jǐn)?shù)據(jù)據(jù)交換指指令SWPB:字節(jié)節(jié)數(shù)據(jù)交交換指令令4.8ARM指令集集移移位指指令(操操作)ARM微微處理器器內(nèi)嵌的的桶型移位位器(BarrelShifter),支持?jǐn)?shù)數(shù)據(jù)的各各種移位位操作,,移位操操作在ARM指指令集中中不作為為單獨(dú)的的指令使使用,它它只能作作為指令令格式中中的一個個字段,,在匯編編語言中中表示為為指令中中的選項(xiàng)項(xiàng)。例如,數(shù)數(shù)據(jù)處理理指令的的第二個個操作數(shù)數(shù)為寄存存器時,,就可以以加入移移位操作作選項(xiàng)對對它進(jìn)行行各種移移位操。。4.8ARM指令集集移位操作作包括如如下6種種類型,,其中ASL和和LSL是等價價的,可可以自由由互換::LSL::邏輯左左移;ASL::算術(shù)左左移;LSR::邏輯右右移;ASR::算術(shù)右右移;ROR::循環(huán)右右移;RRX::帶擴(kuò)展展的循環(huán)環(huán)右移4.8ARM指令集集協(xié)協(xié)處理理器指令令A(yù)RM微微處理器器可支持持多達(dá)16個協(xié)協(xié)處理器器,用于于各種協(xié)協(xié)處理操操作,在在程序執(zhí)執(zhí)行的過過程中,,每個協(xié)協(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024游艇銷售及倉儲物流服務(wù)合同范本3篇
- 二零二五年度廚房設(shè)備進(jìn)出口貿(mào)易合同2篇
- 專業(yè)2024委托獵頭服務(wù)協(xié)議范本版
- 二零二五年股東股權(quán)解除及退股條件明確協(xié)議書3篇
- 個人租車合同2024年度版:租賃工程車具體條款3篇
- 2024版承包經(jīng)營權(quán)抵押合同
- 二零二五版?zhèn)€人房產(chǎn)抵押典當(dāng)經(jīng)營合同3篇
- 臺州科技職業(yè)學(xué)院《內(nèi)科學(xué)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年股權(quán)投資合同具體條款2篇
- 二零二五年度汽車環(huán)保技術(shù)改造投資合同3篇
- 醫(yī)療組長競聘
- 2024年業(yè)績換取股權(quán)的協(xié)議書模板
- 顳下頜關(guān)節(jié)疾病(口腔頜面外科學(xué)課件)
- 工業(yè)自動化設(shè)備維護(hù)保養(yǎng)指南
- 2024人教新版七年級上冊英語單詞英譯漢默寫表
- 《向心力》參考課件4
- 2024至2030年中國膨潤土行業(yè)投資戰(zhàn)略分析及發(fā)展前景研究報告
- 2024年深圳中考數(shù)學(xué)真題及答案
- 土方轉(zhuǎn)運(yùn)合同協(xié)議書
- Module 3 Unit 1 Point to the door(教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版(三起)英語三年級上冊
- 智能交通信號燈安裝合同樣本
評論
0/150
提交評論