




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、自動(dòng)化工程學(xué)院自動(dòng)化工程學(xué)院測(cè)試技術(shù)及儀器研究所測(cè)試技術(shù)及儀器研究所肖肖 寅寅 東東E-mail: TELE:八章第八章ARMARM匯編指令匯編指令A(yù)RM機(jī)器指令編碼格式機(jī)器指令編碼格式 ARMARM采用三地址指令格式:采用三地址指令格式:ARM匯編指令書寫格式匯編指令書寫格式 S , 其中號(hào)內(nèi)的項(xiàng)是必須的,號(hào)內(nèi)的項(xiàng)可選。opcode:指令助記符;:指令助記符;cond:執(zhí)行條件;執(zhí)行條件;S:是否影響:是否影響CPSRCPSR寄存器的值;寄存器的值;Rd:目標(biāo)寄存器;:目標(biāo)寄存器;Rn:第:第1 1個(gè)操作數(shù)的寄存器;個(gè)操作數(shù)的寄存器;operand2:第:第2 2
2、個(gè)操作數(shù)(個(gè)操作數(shù)(#immed_8r#immed_8r、RmRm、Rm,shiftRm,shift););*3/95所有的所有的ARMARM指令都可以條指令都可以條件執(zhí)行,而件執(zhí)行,而ThumbThumb指令只指令只有有B B(跳轉(zhuǎn))(跳轉(zhuǎn))指令具有條件指令具有條件執(zhí)行執(zhí)行 功能。功能。如果指令不標(biāo)如果指令不標(biāo)明條件代碼,明條件代碼,將默認(rèn)為無條將默認(rèn)為無條件(件(ALAL)執(zhí)行)執(zhí)行ARM指令條件碼指令條件碼cond4/95ARM指令中的第指令中的第2操作數(shù)操作數(shù)0 x120 0 0 1 0 0 1 00 x000 0 0 0 0 0 0 00 x000 0 0 0 0 0 0 00 x0
3、00 0 0 0 0 0 0 00 x000 0 0 0 0 0 0 00 x000 0 0 0 0 0 0 00 x801 0 0 0 0 0 0 00 x040 0 0 0 0 1 0 08位常數(shù)循環(huán)右移位常數(shù)循環(huán)右移10位位常數(shù)常數(shù)#immed_8r#immed_8r由一個(gè)由一個(gè)8位常數(shù)通過位常數(shù)通過循環(huán)右移偶數(shù)位循環(huán)右移偶數(shù)位得到:得到:Rm,shiftRm,shift由由RmRm移位得到。移位不消耗額外時(shí)間,且移位得到。移位不消耗額外時(shí)間,且RmRm值不變。值不變。結(jié)果結(jié)果N桶形移位器桶形移位器Rd預(yù)預(yù)處處理理未未預(yù)預(yù)處處理理RmRnLSL0LSR0ASRRORRRXC*桶形移位器的
4、操作桶形移位器的操作ADDR1,R1,R1,LSL #3;R1=R1+R1R3*6/95ARM處理器尋址方式處理器尋址方式 尋址方式是根據(jù)指令中給出的地址碼尋址方式是根據(jù)指令中給出的地址碼字段來實(shí)現(xiàn)尋找真實(shí)操作數(shù)地址的方式。字段來實(shí)現(xiàn)尋找真實(shí)操作數(shù)地址的方式。 ARM ARM處理器具有幾種基本尋址方式:處理器具有幾種基本尋址方式:1. 1.寄存器尋址寄存器尋址 2.2.立即尋址立即尋址 3.3.寄存器間接尋址寄存器間接尋址移位尋址移位尋址、間接尋址間接尋址、基址變址尋址基址變址尋址、多寄存器尋址(塊尋址)多寄存器尋址(塊尋址) 4.4.堆棧尋址堆棧尋址 5.5.相對(duì)尋址相對(duì)尋址7/951. 1
5、. 操作數(shù)存放在寄存器中操作數(shù)存放在寄存器中; ;2.2.指令地址碼字段給出寄存器編號(hào)(名)指令地址碼字段給出寄存器編號(hào)(名); ;3.3.指令執(zhí)行時(shí)直接取出寄存器值來操作指令執(zhí)行時(shí)直接取出寄存器值來操作; ;MOV MOV R1, R2R1, R2; R1 = R2 ; R1 = R2 SUB SUB R0, R1, R2 ; R0 = R1-R2 R0, R1, R2 ; R0 = R1-R2 寄存器尋址寄存器尋址0 xAA0 x55R2R10 xAA*8/951. 1. 操作數(shù)包含在指令當(dāng)中操作數(shù)包含在指令當(dāng)中; ;2. 2. 指令地址碼部分就是數(shù)據(jù)本身;指令地址碼部分就是數(shù)據(jù)本身;3.
6、 3. 取指時(shí)就取出了可立即使用的操作數(shù);取指時(shí)就取出了可立即使用的操作數(shù);MOV MOV R0,#0 xFF00 ; R0 = #0 xFF00 R0,#0 xFF00 ; R0 = #0 xFF00 SUBSSUBS R0,R0,#1 ; R0 =R0-1 R0,R0,#1 ; R0 =R0-1立即尋址立即尋址0 x55R0MOV R0,#0 xFF000 xFF00從代碼中獲得數(shù)據(jù)從代碼中獲得數(shù)據(jù)10進(jìn)制數(shù):進(jìn)制數(shù):#21,#0d572進(jìn)制數(shù):進(jìn)制數(shù): #0b0110016進(jìn)制數(shù):進(jìn)制數(shù):#0 x3a001影響標(biāo)志位影響標(biāo)志位寄存器尋址寄存器尋址*9/951. 1. 操作數(shù)存放在寄存器中
7、操作數(shù)存放在寄存器中; ;2.2.指令地址碼字段給出寄存器編號(hào)(名)及移位表達(dá)式指令地址碼字段給出寄存器編號(hào)(名)及移位表達(dá)式; ;3.3.指令執(zhí)行時(shí)取出寄存器值并移位,再將結(jié)果作為源操指令執(zhí)行時(shí)取出寄存器值并移位,再將結(jié)果作為源操作數(shù)作數(shù); ;MOVMOV R0, R2, LSL #3 R0, R2, LSL #3 ; R0=R2; R0=R28 8 ANDS R1, R1, R2, LSL R3 ANDS R1, R1, R2, LSL R3 ; R1 = R1 and (R2R3) ; R1 = R1 and (R2R3)寄存器移位尋址寄存器移位尋址0 x55R0R20 x010 x08
8、0 x08邏輯左移邏輯左移3位位寄存器尋址寄存器尋址影響標(biāo)志位影響標(biāo)志位LSL、LSRASRROR、RRX寄存器間接尋址寄存器間接尋址1. 1. 操作數(shù)存放在內(nèi)存單元中操作數(shù)存放在內(nèi)存單元中; ;2.2.指令地址碼字段給出指令地址碼字段給出 寄存器編號(hào)(名)寄存器編號(hào)(名); ;3.3.指令執(zhí)行時(shí)根據(jù)寄存器值(指針)找到相應(yīng)的存儲(chǔ)單指令執(zhí)行時(shí)根據(jù)寄存器值(指針)找到相應(yīng)的存儲(chǔ)單元元; ;LDRLDRR1,R2R1,R2; R1= R2; R1= R2SWPSWPR1,R1,R2R1,R1,R2; R1; R1 R2 R20 x55R0R20 x400000000 xAA0 x400000000
9、 xAA內(nèi)存單元內(nèi)存單元*11/95基址變址尋址基址變址尋址1. 1. 操作數(shù)存放在內(nèi)存單元中操作數(shù)存放在內(nèi)存單元中; ;2.2.指令地址碼字段給出指令地址碼字段給出 寄存器編號(hào)(名)寄存器編號(hào)(名) 和偏移量和偏移量; ;3.3.指令執(zhí)行時(shí)將基址寄存器的內(nèi)容與偏移量(指令執(zhí)行時(shí)將基址寄存器的內(nèi)容與偏移量(4K4K)相)相加加/ /減,形成操作數(shù)的有效地址。減,形成操作數(shù)的有效地址。4. 4. 常用于查表、數(shù)組操作、功能部件寄存器訪問等。常用于查表、數(shù)組操作、功能部件寄存器訪問等。LDR LDR R2,R3,#0 x0CR2,R3,#0 x0C ;R2=R3+0 x0C ;R2=R3+0 x0
10、CLDR LDR R1,R0,#-4!R1,R0,#-4! ;R1=R0-4, R0=R0-4 ;R1=R0-4, R0=R0-4LDR R0,R1 ,#4 LDR R0,R1 ,#4 ;R0=R1 ;R0=R1,R1R1R1R14 4LDR LDR R0,R1,R2 R0,R1,R2 ;R0=R1+R2 ;R0=R1+R2前索引前索引后索引后索引0 x55R2R30 x400000000 xAA0 x4000000C0 xAA內(nèi)存單元內(nèi)存單元12/95多寄存器尋址多寄存器尋址/塊復(fù)制尋址塊復(fù)制尋址1. 1. 操作數(shù)存放在內(nèi)存單元中操作數(shù)存放在內(nèi)存單元中; ;2.2.指令地址碼字段給出指令地址
11、碼字段給出 寄存器編號(hào)(名)列表寄存器編號(hào)(名)列表; ;3.3.編號(hào)高的寄存器總是對(duì)應(yīng)內(nèi)存中的高地址單元編號(hào)高的寄存器總是對(duì)應(yīng)內(nèi)存中的高地址單元;4. 4. 可完成存儲(chǔ)塊和可完成存儲(chǔ)塊和1616個(gè)寄存器或其子集之間的數(shù)據(jù)傳送。個(gè)寄存器或其子集之間的數(shù)據(jù)傳送。 LDMIALDMIA R1!,R2-R4,R6 R1!,R2-R4,R6 ; R2= R1 , R3= R1+4; R2= R1 , R3= R1+4; R4= R1+8 , R6= R1+C, R1=R1+10; R4= R1+8 , R6= R1+C, R1=R1+10 STMDB STMDB R1,R2-R4,R6 R1,R2-R
12、4,R6 ; R1-4= R6 , R1-8=R4; R1-4= R6 , R1-8=R4 ; R1-C =R3, R1-10=R2; R1-C =R3, R1-10=R20 x40000000R1R20 x?0 x010 x400000000 x?R3R40 x?R60 x?0 x020 x030 x040 x400000040 x400000080 x4000000C0 x010 x020 x030 x040 x40000010內(nèi)存單元內(nèi)存單元Increase AfterDecrease BeforeARM支持的四種堆棧類型支持的四種堆棧類型滿遞增(滿遞增(FAFA):堆棧向上增長,堆棧指
13、):堆棧向上增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最高地址。針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最高地址。空遞增(空遞增(EAEA) :堆棧向上增長,堆棧指:堆棧向上增長,堆棧指針指向堆棧上的第一個(gè)空位置。針指向堆棧上的第一個(gè)空位置。滿遞減(滿遞減(FDFD) :堆棧向下增長,堆棧指:堆棧向下增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最低地址。針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最低地址??者f減(空遞減(EDED) :堆棧向下增長,堆棧指:堆棧向下增長,堆棧指針向堆棧下的第一個(gè)空位置。針向堆棧下的第一個(gè)空位置。*14/95棧頂棧頂SP棧頂棧頂SP棧底棧底棧底棧底堆棧的空與滿堆棧的空與滿空堆棧:堆棧指針空堆棧:堆棧指針SPSP指向下一
14、個(gè)待壓指向下一個(gè)待壓入數(shù)據(jù)的空位置入數(shù)據(jù)的空位置滿堆棧:堆棧指針滿堆棧:堆棧指針SPSP指向最后壓入的指向最后壓入的堆棧的有效數(shù)據(jù)項(xiàng)堆棧的有效數(shù)據(jù)項(xiàng)0 x123456780 x12345678棧頂棧頂SP0 x12345678棧頂棧頂SP滿堆棧壓棧滿堆棧壓??斩褩簵?斩褩簵?15/95堆棧的遞增與遞減堆棧的遞增與遞減遞增堆棧:向高地址方向生長,即向上生長遞增堆棧:向高地址方向生長,即向上生長遞減堆棧:向低地址方向生長,即向下生長遞減堆棧:向低地址方向生長,即向下生長棧底棧底棧頂棧頂棧區(qū)棧區(qū)SP堆棧存儲(chǔ)區(qū)棧頂棧頂棧底棧底棧區(qū)棧區(qū)SP地址減少地址增加0 x123456780 x12345678
15、遞增堆棧壓棧遞減堆棧壓棧*16/95堆堆 棧棧 尋尋 址址1. 1. 操作數(shù)存放在內(nèi)存棧頂單元中操作數(shù)存放在內(nèi)存棧頂單元中; ;2.2.指令地址碼字段固定使用棧頂指針指令地址碼字段固定使用棧頂指針SP;SP;3.3.指令執(zhí)行時(shí)同多寄存器指令執(zhí)行時(shí)同多寄存器/ /塊尋址,可完成多個(gè)數(shù)據(jù)的塊尋址,可完成多個(gè)數(shù)據(jù)的入棧和出棧;入棧和出棧; LDMEALDMEA SP!,R2-R4,R6 SP!,R2-R4,R6 ; R6= SP-4 , R4= SP-8; R6= SP-4 , R4= SP-8; R3= SP-C , R2= SP-10,SP=SP-10; R3= SP-C , R2= SP-10
16、,SP=SP-10 STMFD STMFD SP!,R2-R4,R6 SP!,R2-R4,R6 ; SP-4= R6 , SP-8=R4; SP-4= R6 , SP-8=R4; SP-C =R3, SP-10=R2, SP=SP-10; SP-C =R3, SP-10=R2, SP b)a+; Elseb+;對(duì)應(yīng)的匯編代碼:對(duì)應(yīng)的匯編代碼:CMPR0,R1 ;比較比較R0(a)與)與R1(b)ADDHIR0,R0,#1 ;若若R0R1,則,則R0=R0+1ADDLSR1,R1,#1 ;若若R01,則,則R1=R1+1*19/95數(shù)據(jù)處理指令的編碼格式數(shù)據(jù)處理指令的編碼格式指令條件碼I=1I=
17、1:立即數(shù);:立即數(shù); I=0I=0:寄存器移位:寄存器移位第二操作數(shù)RdRd目標(biāo)寄存器目標(biāo)寄存器RnRn第一操作數(shù)寄存器第一操作數(shù)寄存器S=1S=1:根據(jù)結(jié)果設(shè)置:根據(jù)結(jié)果設(shè)置CPRSCPRS中的條件碼中的條件碼S=0S=0:不設(shè)置:不設(shè)置CPRSCPRS中的條件碼中的條件碼帶進(jìn)位加法帶進(jìn)位加法ADCADC01010101帶進(jìn)位減法指令帶進(jìn)位減法指令SBCSBC01100110帶進(jìn)位逆向減法指令帶進(jìn)位逆向減法指令RSCRSC01110111位測(cè)試指令位測(cè)試指令TSTTST10001000相等測(cè)試指令相等測(cè)試指令TEQTEQ10011001比較指令比較指令CMPCMP10101010負(fù)數(shù)比較指
18、令負(fù)數(shù)比較指令CMNCMN10111011邏輯或操作指令邏輯或操作指令ORRORR11001100數(shù)據(jù)傳送數(shù)據(jù)傳送MOVMOV11011101位清除指令位清除指令BICBIC11101110數(shù)據(jù)非傳送數(shù)據(jù)非傳送MVNMVN11111111加法運(yùn)算指令加法運(yùn)算指令A(yù)DDADD01000100逆向減法指令逆向減法指令RSBRSB00110011減法運(yùn)算指令減法運(yùn)算指令SUBSUB00100010邏輯異或操作指令邏輯異或操作指令EOREOR00010001邏輯與操作指令邏輯與操作指令A(yù)NDAND00000000說明說明指令助記符指令助記符操作碼操作碼20/95乘法指令的編碼格式乘法指令的編碼格式Rm
19、Rm被乘數(shù)寄存器被乘數(shù)寄存器Rn: MLARn: MLA指令相加的寄存器指令相加的寄存器RdLo: 64RdLo: 64位乘法指令目標(biāo)寄位乘法指令目標(biāo)寄存器的低存器的低3232位位Rd: Rd: 目標(biāo)寄存器目標(biāo)寄存器RdHi: 64RdHi: 64位乘法指令目標(biāo)寄存器的高位乘法指令目標(biāo)寄存器的高3232位位RsRs為乘數(shù)寄存器為乘數(shù)寄存器64位有符號(hào)乘加指令位有符號(hào)乘加指令SMLAL11164位有符號(hào)乘法指令位有符號(hào)乘法指令SMULL11064位無符號(hào)乘加指令位無符號(hào)乘加指令UMLAL10164位無符號(hào)乘法指令位無符號(hào)乘法指令UMULL10032位乘加指令位乘加指令MLA00132位乘法指令位
20、乘法指令MUL000說明說明指令助記符指令助記符操作碼操作碼*21/95單數(shù)據(jù)存取指令的編碼格式單數(shù)據(jù)存取指令的編碼格式字和無符號(hào)字節(jié)存取指令字和無符號(hào)字節(jié)存取指令LDR/STRLDR/STRP P表示前表示前/ /后變址后變址U=1:U=1:加加 U=0: U=0: 減減B=0B=0:字節(jié):字節(jié) B=1B=1:字:字 W=1W=1:回寫基址寄存器,對(duì):回寫基址寄存器,對(duì)應(yīng)指令中的應(yīng)指令中的“!” ” W=0W=0:不回寫:不回寫存儲(chǔ)單元尋址方式存儲(chǔ)單元尋址方式L=1L=1:加載:加載 L=0L=0:存儲(chǔ):存儲(chǔ)RdRd為源為源/ /目標(biāo)寄存器目標(biāo)寄存器RnRn為基址寄存器為基址寄存器S=1:S
21、=1:有符號(hào)數(shù),有符號(hào)數(shù), S=0: S=0: 無符號(hào)數(shù)無符號(hào)數(shù)H=1H=1:半字,:半字,H=0H=0:字節(jié):字節(jié)存儲(chǔ)單元尋址方式存儲(chǔ)單元尋址方式半字和有符號(hào)字節(jié)存取指令半字和有符號(hào)字節(jié)存取指令LDR/STRLDR/STRI=1I=1立即數(shù)立即數(shù) I=0I=0寄存器移位寄存器移位22/95數(shù)據(jù)塊數(shù)據(jù)塊(多寄存器多寄存器)存取指令的編碼格式存取指令的編碼格式數(shù)據(jù)塊(多寄存器)存取指令編碼數(shù)據(jù)塊(多寄存器)存取指令編碼LDM/STMLDM/STMS S 對(duì) 應(yīng) 于 指 令 中 的對(duì) 應(yīng) 于 指 令 中 的”符號(hào):在恢復(fù)符號(hào):在恢復(fù)PCPC時(shí)也同時(shí)恢復(fù)時(shí)也同時(shí)恢復(fù)SPSRSPSRP P表示前表示前
22、/ /后變址后變址U U表示加表示加/ /減減WW表示回寫表示回寫(!)(!)寄存器列表寄存器列表RnRn為基址寄存器為基址寄存器L=1:L=1:加載加載 L=0:L=0:存儲(chǔ)存儲(chǔ)*23/95寄存器寄存器/存儲(chǔ)器交換指令的編碼格式存儲(chǔ)器交換指令的編碼格式B B用于區(qū)別無符號(hào)字節(jié)用于區(qū)別無符號(hào)字節(jié)(B B為為1 1)或字()或字(B B為為0 0)Rm源寄存器Rd目標(biāo)寄存器Rn為基址寄存器SWPR1,R1,R0; ; R1R1R0R0SWPB R1,R2,R0; ;將將R0R0指向的存儲(chǔ)單元低字節(jié)指向的存儲(chǔ)單元低字節(jié)數(shù)據(jù)讀數(shù)據(jù)讀; ;取到取到R1R1中中( (高高2424位清零位清零) ),并將
23、,并將R2R2的的; ;內(nèi)容寫入到該內(nèi)存單元中的最低字節(jié)內(nèi)容寫入到該內(nèi)存單元中的最低字節(jié)*24/95分支指令的編碼格式分支指令的編碼格式分支指令分支指令B/BLB/BL指令編碼格式指令編碼格式L=0L=0:B B指令,跳轉(zhuǎn)指令,跳轉(zhuǎn)L=1L=1: BLBL指令,保存指令,保存PCPC并跳轉(zhuǎn),可返回并跳轉(zhuǎn),可返回2424位有符號(hào)立即數(shù)(位有符號(hào)立即數(shù)(偏移量)偏移量)分支指令分支指令BXBX指令編碼格式指令編碼格式RmRm目標(biāo)地址寄存器,該寄存器裝載目標(biāo)地址寄存器,該寄存器裝載3131位跳位跳轉(zhuǎn)地址,最低位為轉(zhuǎn)地址,最低位為1 1時(shí)切換到時(shí)切換到ThumbThumb狀態(tài)狀態(tài)*25/95狀態(tài)寄存器
24、訪問指令的編碼格式狀態(tài)寄存器訪問指令的編碼格式指定傳送的區(qū)域,可以為以下字母指定傳送的區(qū)域,可以為以下字母(必須小寫)的一個(gè)或者組合:(必須小寫)的一個(gè)或者組合:c c 控制域屏蔽字節(jié)控制域屏蔽字節(jié)(psr7.0)(psr7.0)x x 擴(kuò)展域屏蔽字節(jié)擴(kuò)展域屏蔽字節(jié)(psr15.8)(psr15.8)s s 狀態(tài)域屏蔽字節(jié)狀態(tài)域屏蔽字節(jié)(psr23.16)(psr23.16)f f 標(biāo)志域屏蔽字節(jié)標(biāo)志域屏蔽字節(jié)(psr31.24)(psr31.24)要傳送到狀態(tài)寄存要傳送到狀態(tài)寄存器指定域的立即數(shù)器指定域的立即數(shù)MSRMSR指令編碼指令編碼1 1MSRMSR指令編碼指令編碼2 28 8位立即數(shù)
25、位立即數(shù)目標(biāo)寄存器,不能為目標(biāo)寄存器,不能為R15R15R R 0 0:CPSR CPSR R R 1 1:SPSRSPSRMRSMRS指令編碼指令編碼立即數(shù)立即數(shù)移位次數(shù)移位次數(shù)*軟中斷指令的編碼格式軟中斷指令的編碼格式SWIcond immed_24指令執(zhí)行的條件碼指令傳遞的參數(shù)(指令傳遞的參數(shù)(2424位立即數(shù),其值位立即數(shù),其值為為0 02 224241 1););執(zhí)行時(shí)執(zhí)行時(shí)CPUCPU忽略該參數(shù),交忽略該參數(shù),交OSOS處理。處理。*27/95數(shù)據(jù)處理指令數(shù)據(jù)處理指令 ARMARM的數(shù)據(jù)處理指令大致可分為以下幾類:的數(shù)據(jù)處理指令大致可分為以下幾類: 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令:MOV
26、MOV、MVNMVN 算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令: :ADDADD、SUBSUB、RSBRSB、ADCADC、SBCSBC、RSCRSC、MULMUL、MLAMLA、UMULLUMULL、UMLALUMLAL、SMULLSMULL、SMLALSMLAL 邏輯運(yùn)算指令邏輯運(yùn)算指令 :ANDAND、ORRORR、EOREOR、BICBIC 比較指令比較指令:CMPCMP、CMNCMN、TSTTST、TEQTEQv 數(shù)據(jù)處理指令只能對(duì)數(shù)據(jù)處理指令只能對(duì)寄存器寄存器的內(nèi)容進(jìn)行操作,而不的內(nèi)容進(jìn)行操作,而不能對(duì)內(nèi)存中的數(shù)據(jù)進(jìn)行操作。能對(duì)內(nèi)存中的數(shù)據(jù)進(jìn)行操作。v 所有所有ARMARM數(shù)據(jù)處理指令均可選擇使用
27、數(shù)據(jù)處理指令均可選擇使用S S后綴,以使指后綴,以使指令影響狀態(tài)標(biāo)志。令影響狀態(tài)標(biāo)志。 28/95數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令MOV R11,#0 xF000000B;R1= 0 xF000000B MOV R0,R1;R0=R1 MOVS R3,R1,LSL #2;R3=R12,并影響標(biāo)志位,并影響標(biāo)志位 MOV PC,LR;PC=LR,子程序返回,子程序返回 MVN R1,#0 xFF;R1=0 xFFMVN R1,R2;將將R2按位取反,結(jié)果存到按位取反,結(jié)果存到R1v 當(dāng)有后綴當(dāng)有后綴S S時(shí)指令將根據(jù)結(jié)果更新標(biāo)志時(shí)指令將根據(jù)結(jié)果更新標(biāo)志NN和和Z Z,在計(jì)算,在計(jì)算operand2ope
28、rand2( 8 8位立即數(shù)或寄存器位立即數(shù)或寄存器)時(shí)更新標(biāo)志時(shí)更新標(biāo)志C C,不影響標(biāo)志,不影響標(biāo)志V V。 v MVN MVN指令具有取反功能,所以可以裝載范圍更廣的立即數(shù)。指令具有取反功能,所以可以裝載范圍更廣的立即數(shù)。29/95算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令可影可影響響NN,Z Z,C C和和V V標(biāo)標(biāo)志位志位。ADDSR1,R1,#1020;R1=R1+1020,并影響標(biāo)志位,并影響標(biāo)志位ADDR1,R1,R2,LSL #2;R1=R1+R210,則比較則比較R1與與R2,并設(shè)置相關(guān)標(biāo)志位,并設(shè)置相關(guān)標(biāo)志位CMNR0,#1 ;比較比較R0與與-1,判斷,判斷R0是否為是否為1的補(bǔ)碼的補(bǔ)碼
29、-1,是則設(shè)置,是則設(shè)置Z標(biāo)志標(biāo)志TSTR1,#0 x0F;判斷判斷R1的低的低4位是否為位是否為0 TEQR0,R1;較較R0與與R1是否相等是否相等 (不影響不影響V位和位和C位位) TST指令的下一條指令常與指令的下一條指令常與EQ、NE條件碼配合使用:當(dāng)所條件碼配合使用:當(dāng)所有測(cè)試位均為有測(cè)試位均為0時(shí),時(shí),EQ有效(有效(Z=1),否則),否則NE有效(有效(Z=0););計(jì)算計(jì)算R0+1 TEQ指令的下一條指令常與指令的下一條指令常與EQ、NE條件碼配合使用:當(dāng)兩條件碼配合使用:當(dāng)兩個(gè)數(shù)據(jù)相等時(shí),個(gè)數(shù)據(jù)相等時(shí),EQ有效(有效(Z=1),否則),否則NE有效(有效(Z=0););*3
30、3/95存儲(chǔ)器訪問指令存儲(chǔ)器訪問指令 ARMARM處理器是典型的處理器是典型的RISCRISC處理器,對(duì)存儲(chǔ)器的訪問處理器,對(duì)存儲(chǔ)器的訪問只能使用加載只能使用加載/ /存儲(chǔ)指令存儲(chǔ)指令 實(shí)現(xiàn)。實(shí)現(xiàn)。 ARM ARM的存儲(chǔ)空間及的存儲(chǔ)空間及I/OI/O空間統(tǒng)一編址,因此對(duì)外圍空間統(tǒng)一編址,因此對(duì)外圍I/OI/O及程序數(shù)據(jù)的訪問均需通過加載及程序數(shù)據(jù)的訪問均需通過加載/ /存儲(chǔ)指令進(jìn)行。存儲(chǔ)指令進(jìn)行。一、單寄存器操作指令一、單寄存器操作指令LDR/STR 用于對(duì)訪問內(nèi)存變量、內(nèi)存緩沖區(qū)數(shù)據(jù)、查表、控制用于對(duì)訪問內(nèi)存變量、內(nèi)存緩沖區(qū)數(shù)據(jù)、查表、控制外圍部件等。若使用外圍部件等。若使用LDRLDR指令
31、加載數(shù)據(jù)到指令加載數(shù)據(jù)到PCPC寄存器,則寄存器,則實(shí)現(xiàn)程序?qū)崿F(xiàn)程序跳轉(zhuǎn)跳轉(zhuǎn)。 又分為又分為“字和無符號(hào)字節(jié)加載存儲(chǔ)指令字和無符號(hào)字節(jié)加載存儲(chǔ)指令”及及“半字和半字和有符號(hào)字節(jié)加載存儲(chǔ)指令有符號(hào)字節(jié)加載存儲(chǔ)指令”兩類。兩類。二、多寄存器操作指令二、多寄存器操作指令LDM/STM 主要用于現(xiàn)場保護(hù)、數(shù)據(jù)復(fù)制、常數(shù)傳遞等。主要用于現(xiàn)場保護(hù)、數(shù)據(jù)復(fù)制、常數(shù)傳遞等。三、數(shù)據(jù)交換指令三、數(shù)據(jù)交換指令SWPSWP34/95單寄存器存取指令單寄存器存取指令符號(hào)數(shù)加載時(shí)用符號(hào)擴(kuò)展到符號(hào)數(shù)加載時(shí)用符號(hào)擴(kuò)展到3232位,否則用零擴(kuò)展到位,否則用零擴(kuò)展到3232位;位;半字讀寫的指定地址必須為偶數(shù),否則將產(chǎn)生不可靠
32、的結(jié)果;半字讀寫的指定地址必須為偶數(shù),否則將產(chǎn)生不可靠的結(jié)果;單寄存器存取指令的尋址方式單寄存器存取指令的尋址方式基址寄存器(任一通用寄存器)基址寄存器(任一通用寄存器)+ +地址偏移量地址偏移量立即數(shù)立即數(shù):LDR R1,R0,#0 x12 ;R1-R0+0 x12寄存器寄存器:LDR R1,R0,-R2 ; R1-R0-R2寄存器移位寄存器移位:LDR R1,R0,R2,LSL #2 ;R1R3-R8/4;將將R0+R3指向的字節(jié)存入指向的字節(jié)存入R1,高,高24位符號(hào)擴(kuò)展位符號(hào)擴(kuò)展; 將將 R 2 指 向 的 半 字 存 入指 向 的 半 字 存 入 R 6 , 高, 高 1 6 位位
33、0 擴(kuò) 展擴(kuò) 展;R2=R2+2;雙字裝載,;雙字裝載,R6R11,R7R11+4 ;雙字存儲(chǔ),雙字存儲(chǔ),R4R9+24,R5R9+2837/95多寄存器存取指令多寄存器存取指令u reglistreglist表示寄存器列表(由小到大),如表示寄存器列表(由小到大),如R1,R2,R6-R9R1,R2,R6-R9;u ! ! 表示在操作結(jié)束后,將最后的地址寫回表示在操作結(jié)束后,將最后的地址寫回RnRn中;中;u允許在允許在用戶模式或系統(tǒng)模式用戶模式或系統(tǒng)模式下使用。它有以下兩個(gè)功能:下使用。它有以下兩個(gè)功能:1 1)異常模式下)異常模式下LDMLDM指令中寄存器列表包含指令中寄存器列表包含R1
34、5R15時(shí),除正常多寄存時(shí),除正常多寄存器傳送外,還將器傳送外,還將SPSRSPSR也復(fù)制到也復(fù)制到CPSRCPSR中。常用于中。常用于異常處理返回異常處理返回。2 2)使用)使用用戶模式下的寄存器用戶模式下的寄存器,而不是當(dāng)前模式的寄存器。,而不是當(dāng)前模式的寄存器。38/95多寄存器存取指令應(yīng)用示例多寄存器存取指令應(yīng)用示例R1R1:指令指令執(zhí)行執(zhí)行前前的的基址寄存基址寄存器器R1R1:指令指令執(zhí)行執(zhí)行后后的的基址寄存基址寄存器器R1 R1 指令指令STMIA R1!,R5-R74008H4004H4000H4014H4010H400CHR1 R1 指令指令STMDA R1!,R5-R7400
35、8H4004H4000H4014H4010H400CHR1 R1 指令指令STMIB R1!,R5-R74008H4004H4000H4014H4010H400CHR1 R1 指令指令STMDB R1!,R5-R74008H4004H4000H4014H4010H400CHR5R6R7R5R6R7R5R6R7R5R6R739/95堆堆 棧棧 操操 作作;使用數(shù)據(jù)塊傳送指令進(jìn)行堆棧操作使用數(shù)據(jù)塊傳送指令進(jìn)行堆棧操作STMDAR0!,R5-R6. . .LDMIBR0!,R5-R6;使用堆棧指令進(jìn)行堆棧操作使用堆棧指令進(jìn)行堆棧操作STMEDR13!,R5-R6. . .LDMEDR13!,R5-R
36、6 兩段代碼的執(zhí)行結(jié)果是一樣的,但是使用堆棧指令的壓棧和兩段代碼的執(zhí)行結(jié)果是一樣的,但是使用堆棧指令的壓棧和出棧操作編程很簡單(只要前后一致即可),而使用數(shù)據(jù)塊指令出棧操作編程很簡單(只要前后一致即可),而使用數(shù)據(jù)塊指令進(jìn)行壓棧和出棧操作則需要考慮空與滿、加與減對(duì)應(yīng)的問題。進(jìn)行壓棧和出棧操作則需要考慮空與滿、加與減對(duì)應(yīng)的問題。堆棧操作和數(shù)據(jù)塊傳送指令之間的關(guān)系如下表所示:堆棧操作和數(shù)據(jù)塊傳送指令之間的關(guān)系如下表所示:寄存器和存儲(chǔ)器交換指令寄存器和存儲(chǔ)器交換指令u 若若RmRm與與RdRd相同,則為寄存器與存儲(chǔ)器內(nèi)容相同,則為寄存器與存儲(chǔ)器內(nèi)容進(jìn)行互換;進(jìn)行互換;u Rn Rn為要進(jìn)行數(shù)據(jù)交換的
37、存儲(chǔ)器地址,為要進(jìn)行數(shù)據(jù)交換的存儲(chǔ)器地址,RnRn不不能與能與RdRd和和RmRm相同。相同。 *41/95分分 支支 指指 令令 在在ARMARM中有兩種方式可以實(shí)現(xiàn)程序的跳轉(zhuǎn),一中有兩種方式可以實(shí)現(xiàn)程序的跳轉(zhuǎn),一種則是直接種則是直接向向PCPC寄存器賦值寄存器賦值實(shí)現(xiàn)跳轉(zhuǎn),另一種是使實(shí)現(xiàn)跳轉(zhuǎn),另一種是使用用分支指令分支指令直接跳轉(zhuǎn)。直接跳轉(zhuǎn)。 以下三種分支指令跳轉(zhuǎn)范圍限制在當(dāng)前指令的以下三種分支指令跳轉(zhuǎn)范圍限制在當(dāng)前指令的32M32M字節(jié)地址內(nèi),且字節(jié)地址內(nèi),且ARM指令為字對(duì)齊,因此指令為字對(duì)齊,因此最最低低2位地址固定為位地址固定為0。*42/95BL LabelxxxxxxLabel
38、xxxMOV PC,LRAddr1Addr2xxxxxxLRPC分支指令應(yīng)用示例分支指令應(yīng)用示例Addr1LabelAddr2Addr21. 1.當(dāng)程序執(zhí)行到當(dāng)程序執(zhí)行到BLBL跳轉(zhuǎn)指跳轉(zhuǎn)指令時(shí),硬件將下一條指令時(shí),硬件將下一條指令的地址令的地址Addr2Addr2裝入裝入LRLR寄存器,并把跳轉(zhuǎn)地址寄存器,并把跳轉(zhuǎn)地址裝入程序計(jì)數(shù)器(裝入程序計(jì)數(shù)器(PCPC)2. 2. 程序跳轉(zhuǎn)到目標(biāo)地址程序跳轉(zhuǎn)到目標(biāo)地址LabelLabel繼續(xù)執(zhí)行,當(dāng)子程繼續(xù)執(zhí)行,當(dāng)子程序執(zhí)行結(jié)束后,將序執(zhí)行結(jié)束后,將LRLR寄寄存器內(nèi)容存入存器內(nèi)容存入PCPC,返回,返回調(diào)用函數(shù)繼續(xù)執(zhí)行調(diào)用函數(shù)繼續(xù)執(zhí)行B WAITA;
39、 ; 跳轉(zhuǎn)到跳轉(zhuǎn)到WAITAWAITA標(biāo)號(hào)處標(biāo)號(hào)處 B0 x1234; ; 跳轉(zhuǎn)到絕對(duì)地址跳轉(zhuǎn)到絕對(duì)地址0 x12340 x1234處處BL Label;調(diào)用子程序;調(diào)用子程序ADRL R0,ThumbFun+1 ; ;將將ThumbThumb程序的入口地址加程序的入口地址加1 1存入存入R0R0BX R0 ; ; 跳轉(zhuǎn)到指定地址并切換到跳轉(zhuǎn)到指定地址并切換到ThumbThumb狀態(tài)狀態(tài) 43/95*PSR訪問指令訪問指令u 讀讀CPSRCPSR可了解當(dāng)前工作狀態(tài)可了解當(dāng)前工作狀態(tài); ; 讀讀SPSRSPSR可以了解進(jìn)入異常前的狀態(tài)可以了解進(jìn)入異常前的狀態(tài); ; uMSRMSR與與MRSMRS
40、配合使用,可以切換處理器模式或允許配合使用,可以切換處理器模式或允許/ /禁止中斷等。禁止中斷等。(1)(2)(3)(4) 應(yīng)用示例應(yīng)用示例1 1:; ;子程序:使能子程序:使能IRQIRQ中斷中斷ENABLE_IRQ MRS R0, CPSR BIC R0, R0,#0 x80 MSR CPSR_c,R0 MOV PC,LR 應(yīng)用示例應(yīng)用示例2 2:; ;子程序:禁能子程序:禁能IRQIRQ中斷中斷DISABLE_IRQ MRS R0, CPSR ORR R0, R0,#0 x80 MSR CPSR_c,R0 MOV PC,LR 1. 1.將將CPSRCPSR寄存器內(nèi)容讀出到寄存器內(nèi)容讀出到
41、R0R0;2.2.修改對(duì)應(yīng)于修改對(duì)應(yīng)于CPSRCPSR中的中的I I控制位;控制位;3.3.將修改后的值寫回將修改后的值寫回 CPSRCPSR寄存器寄存器的對(duì)應(yīng)控制域;的對(duì)應(yīng)控制域;4.4.返回上一層函數(shù);返回上一層函數(shù);*44/9545軟中斷指令軟中斷指令 主要用于用戶程序主要用于用戶程序調(diào)用操作系統(tǒng)的系統(tǒng)服務(wù)調(diào)用操作系統(tǒng)的系統(tǒng)服務(wù): :切換到管切換到管理模式理模式, ,并將并將CPSRCPSR保存到管理模式的保存到管理模式的SPSRSPSR中,然后程序跳中,然后程序跳轉(zhuǎn)到轉(zhuǎn)到SWISWI異常入口。不影響條件碼標(biāo)志。異常入口。不影響條件碼標(biāo)志。 根據(jù)根據(jù)SWISWI指令傳遞的參數(shù)指令傳遞的參
42、數(shù)SWISWI異常處理程序可以作出相應(yīng)異常處理程序可以作出相應(yīng)的處理。的處理。SWISWI指令指令傳遞參數(shù)傳遞參數(shù)有以下兩種方法有以下兩種方法: 1. 1. 指令中的指令中的2424位立即數(shù)指定服務(wù)類型,參數(shù)通過通用寄存器傳遞。位立即數(shù)指定服務(wù)類型,參數(shù)通過通用寄存器傳遞。 MOV R0,#34; ;設(shè)置子功能號(hào)為設(shè)置子功能號(hào)為34 34 SWI 12; ;調(diào)用調(diào)用1212號(hào)軟中斷號(hào)軟中斷 2.2.指令中的指令中的2424位立即數(shù)被忽略,服務(wù)類型由位立即數(shù)被忽略,服務(wù)類型由R0R0的值決定,參數(shù)通過其它的的值決定,參數(shù)通過其它的通用寄存器傳遞。通用寄存器傳遞。 MOV R0,#12; ;調(diào)用調(diào)
43、用1212號(hào)軟中斷號(hào)軟中斷 MOV R1,#34; ;設(shè)置子功能號(hào)為設(shè)置子功能號(hào)為34 34 SWI 0 *45/95在在SWISWI異常中斷處理程序中,取出異常中斷處理程序中,取出SWISWI指令中立即數(shù)的步驟為:指令中立即數(shù)的步驟為:首先確定引起軟中斷的首先確定引起軟中斷的SWISWI指令是指令是ARMARM指令還是指令還是ThumbThumb指令,這可通過對(duì)指令,這可通過對(duì)SPSRSPSR訪問得到;訪問得到;然后取得該然后取得該SWISWI指令的地址,這可通過訪問指令的地址,這可通過訪問LRLR寄存器得到;寄存器得到;接著讀出該接著讀出該SWISWI指令,分解出立即數(shù)。指令,分解出立即數(shù)
44、。 SWI_Handler STMFD SP!, R0-R3, R12, LR; 現(xiàn)場保護(hù)現(xiàn)場保護(hù) MRS R0, SPSR ; 讀取讀取SPSR STMFD SP!, R0 ; 保存保存SPSR TST R0, #0 x20 ; 測(cè)試測(cè)試T標(biāo)志位標(biāo)志位 LDRNEH R0, LR,#-2 ; 若是若是Thumb指令,讀取指令碼指令,讀取指令碼(16位位) BICNE R0, R0, #0 xFF00; 取得取得Thumb指令的指令的8位立即數(shù)(低位立即數(shù)(低8位)位) LDREQ R0, LR,#-4 ; 若是若是ARM指令,讀取指令碼指令,讀取指令碼(32位位) BICEQ R0, R0,
45、 #0 xFF000000 ; 取得取得ARM指令的指令的24位立即數(shù)(低位立即數(shù)(低23位)位) . LDMFD SP!, R0-R3, R12, PC; SWI異常中斷返回異常中斷返回 *46/95偽指令偽指令在在ARM匯編指令中,有一類特殊的指令沒有對(duì)應(yīng)的匯編指令中,有一類特殊的指令沒有對(duì)應(yīng)的指令編碼。在匯編時(shí)根據(jù)情況會(huì)解釋為相應(yīng)的指令編碼。在匯編時(shí)根據(jù)情況會(huì)解釋為相應(yīng)的ARM、Thumb-2或或Thumb-2之前的之前的Thumb指令的組合。這指令的組合。這類指令被類指令被ARM公司稱為公司稱為“偽指令偽指令”。 需要特別注意的是,這幾條指令和第需要特別注意的是,這幾條指令和第9章中介
46、紹的偽章中介紹的偽指令雖然形式上類似,但作用卻大不相同。第指令雖然形式上類似,但作用卻大不相同。第9章中章中介紹的偽指令用于指導(dǎo)匯編器完成相應(yīng)的匯編工作,介紹的偽指令用于指導(dǎo)匯編器完成相應(yīng)的匯編工作,符合通常意義上對(duì)偽指令的定義,而本節(jié)所介紹的這符合通常意義上對(duì)偽指令的定義,而本節(jié)所介紹的這幾條偽指令的作用和正常的幾條偽指令的作用和正常的ARM匯編指令類似,設(shè)匯編指令類似,設(shè)計(jì)這幾條偽指令的目的主要是計(jì)這幾條偽指令的目的主要是使用一條指令替代多條使用一條指令替代多條指令的組合指令的組合,方便程序員完成匯編程序設(shè)計(jì)工作,其,方便程序員完成匯編程序設(shè)計(jì)工作,其作用類似于作用類似于80 x86處理器
47、的宏指令。處理器的宏指令。 偽指令偽指令A(yù)DR/ADRL將相對(duì)于程序或相對(duì)于寄存器的地址載入寄存器中將相對(duì)于程序或相對(duì)于寄存器的地址載入寄存器中(中等范圍,中等范圍,與位置無關(guān)與位置無關(guān))。指令書寫格式:指令書寫格式:ADR(ADRL) , MOV R0, #0 x18 ; 給給R0賦值用于查表賦值用于查表ADR R3, JumpTable ; 裝載跳轉(zhuǎn)表的首地址裝載跳轉(zhuǎn)表的首地址LDR PC, R3,R0,LSL#2 ; 查表,將查到的地址賦給查表,將查到的地址賦給PCJumpTableADR R3 JumpTableLDR PC,R3,R0,LSL#2xxxJumpTablexxxxxxJ
48、umpTable+72xxxPCR3JumpTablePCxxx偽指令偽指令LDR將將32位常數(shù)或地址載入寄存器位常數(shù)或地址載入寄存器(無范圍限制,但與位置相關(guān)無范圍限制,但與位置相關(guān))指令書寫格式:指令書寫格式:LDR , / expr取值為一個(gè)數(shù)值常數(shù)取值為一個(gè)數(shù)值常數(shù)如果如果expr的值位于范圍內(nèi),則匯編器將會(huì)生成一個(gè)的值位于范圍內(nèi),則匯編器將會(huì)生成一個(gè)MOV或或MVN指令指令如果如果expr的值不在的值不在MOV或或MVN指令的范圍內(nèi),則匯編器會(huì)將常指令的范圍內(nèi),則匯編器會(huì)將常數(shù)放入文字池中,并會(huì)生成一個(gè)相對(duì)于程序的數(shù)放入文字池中,并會(huì)生成一個(gè)相對(duì)于程序的LDR指令,該指指令,該指令可
49、從文字池中讀取此常數(shù)令可從文字池中讀取此常數(shù)指令舉例指令舉例LDR R3,=0 xFFF; 把立即數(shù)把立即數(shù)0 xFFF賦值給賦值給R3LDR R2,=place; 把標(biāo)號(hào)把標(biāo)號(hào)place對(duì)應(yīng)的地址賦值給對(duì)應(yīng)的地址賦值給R2 50偽指令偽指令MOV32將將32位常數(shù)或地址載入寄存器位常數(shù)或地址載入寄存器(無范圍限制,但與位置無范圍限制,但與位置相關(guān)相關(guān))僅可用于僅可用于ARMv6T2及更高版本及更高版本指令書寫格式:指令書寫格式:MOV32 , expr可以是可以是symbol(程序區(qū)域中的標(biāo)號(hào)程序區(qū)域中的標(biāo)號(hào))、constant(任任何何32位常數(shù)位常數(shù))或或symbol+constant(
50、一個(gè)加上一個(gè)加上32位常數(shù)位常數(shù)的標(biāo)號(hào)的標(biāo)號(hào))。 51偽指令偽指令UND生成無體系結(jié)構(gòu)定義的指令生成無體系結(jié)構(gòu)定義的指令指令書寫格式:指令書寫格式:UND 執(zhí)行未定義指令會(huì)引發(fā)未定義指令異常。程序員可以執(zhí)行未定義指令會(huì)引發(fā)未定義指令異常。程序員可以利用指令異常完成相應(yīng)的異常處理。利用指令異常完成相應(yīng)的異常處理。 ARM指令系統(tǒng)總結(jié)指令系統(tǒng)總結(jié)ARMARM指令集指令集ARMARM指令:指令:32 bits32 bits(字長),(字長),4 4字節(jié)邊界對(duì)齊字節(jié)邊界對(duì)齊ThumbThumb指令:指令:16 bits16 bits(半字),(半字), 2 2字節(jié)邊界對(duì)齊字節(jié)邊界對(duì)齊數(shù)據(jù)類型數(shù)據(jù)類型字節(jié):字節(jié):8bit8bit,任意存放,任意存放半字:半字:16bit16bit,2 2字節(jié)邊界對(duì)齊字節(jié)邊界對(duì)齊字:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大興安嶺職業(yè)學(xué)院《韓語入門》2023-2024學(xué)年第一學(xué)期期末試卷
- 泉州信息工程學(xué)院《高層建筑與抗震設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 防水透氣膜施工方案
- 2025年中考數(shù)學(xué)幾何模型歸納訓(xùn)練:最值模型之瓜豆模型(原理)直線解讀與提分訓(xùn)練
- 生態(tài)板門套施工方案
- 柳州塑膠操場施工方案
- 污水池清理施工方案
- 普陀防腐地坪施工方案
- 蘇州安裝門禁施工方案
- 2025年國稅甘肅面試試題及答案
- 打起手鼓唱起歌二聲部改編簡譜
- 新外研版高二英語選擇性必修二unit6 PlanB life on Mars 課件
- 電除顫完整版課件
- 2022年08月安徽省引江濟(jì)淮集團(tuán)有限公司2022年社會(huì)招聘60名運(yùn)行維護(hù)人員高頻考點(diǎn)卷叁(3套)答案詳解篇
- 有關(guān)李白的故事9篇
- 金屬學(xué)與熱處理課后習(xí)題答案版
- QCC培訓(xùn)講義培訓(xùn)課件
- 初中英語方位介詞課件
- DB31T 1176-2019 城鎮(zhèn)燃?xì)夤艿浪蕉ㄏ蜚@進(jìn)工程技術(shù)規(guī)程
- JGJ79-2012建筑地基處理技術(shù)規(guī)范講義
- 動(dòng)物對(duì)環(huán)境的適應(yīng)教案及反思
評(píng)論
0/150
提交評(píng)論