第2部分 嵌入式硬件系统设计5_第1页
第2部分 嵌入式硬件系统设计5_第2页
第2部分 嵌入式硬件系统设计5_第3页
第2部分 嵌入式硬件系统设计5_第4页
第2部分 嵌入式硬件系统设计5_第5页
已阅读5页,还剩145页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系1ARM指令小节目录指令小节目录1.1.指令格式指令格式2.2.条件码条件码3.3.存储器访问指令存储器访问指令4.4.数据处理指令数据处理指令5.5.乘法指令乘法指令6.ARM6.ARM分支指令分支指令7.7.协处理器指令协处理器指令8.8.杂项指令杂项指令9.9.伪指令伪指令2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系22. 指令集介绍指令集介绍nARM指令集指令集ARM数据处理指令数据处理指令 数据处理指令大致可分为数据处理指令大致可分为3 3类:类: 数据传送指令;数

2、据传送指令;算术逻辑运算指令;算术逻辑运算指令;比较指令。比较指令。 数据处理指令只能对寄存器的内容进行操作,数据处理指令只能对寄存器的内容进行操作,而不能对内存中的数据进行操作而不能对内存中的数据进行操作。所有。所有ARMARM数据处数据处理指令均可选择使用理指令均可选择使用S S后缀,并影响状态标志。后缀,并影响状态标志。 2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系3 ARM数据处理指令数据处理指令指令编码指令编码指令执行的条件码指令执行的条件码I I用于区别立即数(用于区别立即数(I I为为1 1)和寄存器移位)和寄存器移位(I I为为0 0)op

3、codeopcode数据处理指数据处理指令操作码令操作码第二操作数第二操作数RdRd目标寄存器目标寄存器RnRn第一操作数寄存器第一操作数寄存器S S设置条件码,与指令设置条件码,与指令中的中的S S位对应位对应带进位加法带进位加法ADCADC01010101带进位减法指令带进位减法指令SBCSBC01100110带进位逆向减法指令带进位逆向减法指令RSCRSC01110111位测试指令位测试指令TSTTST10001000相等测试指令相等测试指令TEQTEQ10011001比较指令比较指令CMPCMP10101010负数比较指令负数比较指令CMNCMN10111011逻辑或操作指令逻辑或操作

4、指令ORRORR11001100数据传送数据传送MOVMOV11011101位清除指令位清除指令BICBIC11101110数据非传送数据非传送MVNMVN11111111加法运算指令加法运算指令ADDADD01000100逆向减法指令逆向减法指令RSBRSB00110011减法运算指令减法运算指令SUBSUB00100010逻辑异或操作指令逻辑异或操作指令EOREOR00010001逻辑与操作指令逻辑与操作指令ANDAND00000000说明说明指令助记符指令助记符操作码操作码opcode操作码功能表操作码功能表2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系

5、系4助记符助记符说明说明操作操作条件码位置条件码位置MOV Rd,operand2MOV Rd,operand2数据传送数据传送RdRdoperand2 operand2 MOVcondSMOVcondS MVN Rd,operand2MVN Rd,operand2数据非传送数据非传送RdRd(operand2)(operand2)MVNcondSMVNcondS ARM数据处理指令数据处理指令数据传送数据传送2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系5助记符助记符说明说明操作操作条件码位置条件码位置MOV Rd,operand2MOV Rd,opera

6、nd2数据传送数据传送RdRdoperand2 operand2 MOVcondSMOVcondS MVN Rd,operand2MVN Rd,operand2数据非传送数据非传送RdRd(operand2)(operand2)MVNcondSMVNcondS ARM数据处理指令数据处理指令数据传送数据传送 MOVMOV指令将指令将8 8位图立即数(参看位图立即数(参看“第第2 2操作数:操作数:#immed_8r#immed_8r常数常数表达式表达式 ”)或寄存器传送到目标寄存器()或寄存器传送到目标寄存器(RdRd),可用于),可用于移位运算移位运算等操等操作。指令格式如下:作。指令格式如

7、下: MOVcondS Rd,operand2 MOVMOV指令举例如下:指令举例如下: MOVR1,#0 x10;R1=0 x10R1=0 x10 MOVR0,R1;R0=R1R0=R1 MOVSR3,R1,LSL #2;R3=R12R3=R12,并影响标志位,并影响标志位 MOVPC,LR;PC=LRPC=LR,子程序返回,子程序返回 2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系6助记符助记符说明说明操作操作条件码位置条件码位置MOV Rd,operand2MOV Rd,operand2数据传送数据传送RdRdoperand2 operand2 MOV

8、condSMOVcondS MVN Rd,operand2MVN Rd,operand2数据非传送数据非传送RdRd(operand2)(operand2)MVNcondSMVNcondS ARM数据处理指令数据处理指令数据传送数据传送 MVNMVN指令将指令将8 8位图立即数(参看位图立即数(参看“第第2 2操作数:操作数:#immed_8r#immed_8r常数常数表达式表达式 ”)或寄存器()或寄存器(operand2operand2)按位取反后传送到目标寄存器)按位取反后传送到目标寄存器(RdRd),因为其具有取反功能,),因为其具有取反功能,所以可以装载范围更广的立即数所以可以装载范

9、围更广的立即数。指令格。指令格式如下:式如下: MVNcondS Rd,operand2 MVNMVN指令举例如下:指令举例如下: MVNR1,#0 xFF;R1=0 xFFFFFF00R1=0 xFFFFFF00 MVNR1,R2;将将R2R2取反,结果存到取反,结果存到R1R12021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系7助记符助记符说明说明操作操作条件码位置条件码位置ADD Rd, RnADD Rd, Rn, operand2, operand2加法运算指令加法运算指令RdRdRn+operand2Rn+operand2ADDcondSADDcond

10、S SUB Rd, RnSUB Rd, Rn, operand2, operand2减法运算指令减法运算指令RdRdRn-operand2Rn-operand2SUBcondSSUBcondS RSB Rd, RnRSB Rd, Rn, operand2, operand2逆向减法指令逆向减法指令RdRdoperand2-Rnoperand2-RnRSBcondSRSBcondS ADC Rd, RnADC Rd, Rn, operand2, operand2带进位加法带进位加法RdRdRn+operand2+CarryRn+operand2+CarryADCcondSADCcondS SBC

11、 Rd, RnSBC Rd, Rn, operand2, operand2带进位减法指令带进位减法指令RdRdRn-operand2-Rn-operand2-(NOT)Carry(NOT)CarrySBCcondSSBCcondS RSC Rd, RnRSC Rd, Rn, operand2, operand2带进位逆向减法带进位逆向减法指令指令RdRdoperand2-Rn-operand2-Rn-(NOT)Carry(NOT)CarryRSCcondSRSCcondS ARM数据处理指令数据处理指令算术运算算术运算2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工

12、程系系8助记符助记符说明说明操作操作条件码位置条件码位置ADD Rd, RnADD Rd, Rn, operand2, operand2加法加法运算指令运算指令RdRdRn+operand2Rn+operand2ADDcondSADDcondS SUB Rd, RnSUB Rd, Rn, operand2, operand2减法运算指令减法运算指令RdRdRn-operand2Rn-operand2SUBcondSSUBcondS RSB Rd, RnRSB Rd, Rn, operand2, operand2逆向减法指令逆向减法指令RdRdoperand2-Rnoperand2-RnRSBc

13、ondSRSBcondS ADC Rd, RnADC Rd, Rn, operand2, operand2带进位加法带进位加法RdRdRn+operand2+CarryRn+operand2+CarryADCcondSADCcondS SBC Rd, RnSBC Rd, Rn, operand2, operand2带进位减法指令带进位减法指令RdRdRn-operand2-Rn-operand2-(NOT)Carry(NOT)CarrySBCcondSSBCcondS RSC Rd, RnRSC Rd, Rn, operand2, operand2带进位逆向减法带进位逆向减法指令指令RdRdo

14、perand2-Rn-operand2-Rn-(NOT)Carry(NOT)CarryRSCcondSRSCcondS ARM数据处理指令数据处理指令算术运算算术运算 加法运算指令加法运算指令ADDADD指令将指令将operand2operand2的值与的值与RnRn的值相加,结果保的值相加,结果保存到存到RdRd寄存器。指令格式如下:寄存器。指令格式如下: ADDcondS Rd,Rn,operand2 应用示例:应用示例: ADDS R1,R1,#1;R1=R1+1;R1=R1+1,并影响标志位,并影响标志位 ADD R1,R1,R2;R1=R1+R2;R1=R1+R2 2021-11-2

15、0哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系9助记符助记符说明说明操作操作条件码位置条件码位置ADD Rd, RnADD Rd, Rn, operand2, operand2加法运算指令加法运算指令RdRdRn+operand2Rn+operand2ADDcondSADDcondS SUB Rd, RnSUB Rd, Rn, operand2, operand2减法减法运算指令运算指令RdRdRn-operand2Rn-operand2SUBcondSSUBcondS RSB Rd, RnRSB Rd, Rn, operand2, operand2逆向减法指令逆向减法指令R

16、dRdoperand2-Rnoperand2-RnRSBcondSRSBcondS ADC Rd, RnADC Rd, Rn, operand2, operand2带进位加法带进位加法RdRdRn+operand2+CarryRn+operand2+CarryADCcondSADCcondS SBC Rd, RnSBC Rd, Rn, operand2, operand2带进位减法指令带进位减法指令RdRdRn-operand2-Rn-operand2-(NOT)Carry(NOT)CarrySBCcondSSBCcondS RSC Rd, RnRSC Rd, Rn, operand2, op

17、erand2带进位逆向减法带进位逆向减法指令指令RdRdoperand2-Rn-operand2-Rn-(NOT)Carry(NOT)CarryRSCcondSRSCcondS ARM数据处理指令数据处理指令算术运算算术运算 减法运算指令减法运算指令SUBSUB指令用寄存器指令用寄存器RnRn减去减去operand2operand2,结果保存到,结果保存到RdRd中。指令格式如下:中。指令格式如下: SUBcondS Rd,Rn,operand2 应用示例:应用示例: SUBSR0,R0,#1;R0=R0-1 ;R0=R0-1 ,并影响标志位,并影响标志位 SUBSR2,R1,R2;R2=R1

18、-R2;R2=R1-R2 ,并影响标志位,并影响标志位 2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系10助记符助记符说明说明操作操作条件码位置条件码位置ADD Rd, RnADD Rd, Rn, operand2, operand2加法运算指令加法运算指令RdRdRn+operand2Rn+operand2ADDcondSADDcondS SUB Rd, RnSUB Rd, Rn, operand2, operand2减法运算指令减法运算指令RdRdRn-operand2Rn-operand2SUBcondSSUBcondS RSB Rd, RnRSB R

19、d, Rn, operand2, operand2逆向逆向减法指令减法指令RdRdoperand2-Rnoperand2-RnRSBcondSRSBcondS ADC Rd, RnADC Rd, Rn, operand2, operand2带进位加法带进位加法RdRdRn+operand2+CarryRn+operand2+CarryADCcondSADCcondS SBC Rd, RnSBC Rd, Rn, operand2, operand2带进位减法指令带进位减法指令RdRdRn-operand2-Rn-operand2-(NOT)Carry(NOT)CarrySBCcondSSBCco

20、ndS RSC Rd, RnRSC Rd, Rn, operand2, operand2带进位逆向减法带进位逆向减法指令指令RdRdoperand2-Rn-operand2-Rn-(NOT)Carry(NOT)CarryRSCcondSRSCcondS ARM数据处理指令数据处理指令算术运算算术运算 逆向减法运算指令逆向减法运算指令RSBRSB指令将指令将operand2operand2的值减去的值减去RnRn,结果保存到,结果保存到RdRd中。指令格式如下:中。指令格式如下: RSBcondS Rd,Rn,operand2 应用示例:应用示例: RSB R3,R1,#0 xFF00;R3=0

21、 xFF00-R1;R3=0 xFF00-R1 RSBS R1,R2,R2,LSL #2;R1=(R22)-R2=R2;R1=(R22)-R2=R23 3 2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系11助记符助记符说明说明操作操作条件码位置条件码位置ADD Rd, RnADD Rd, Rn, operand2, operand2加法运算指令加法运算指令RdRdRn+operand2Rn+operand2ADDcondSADDcondS SUB Rd, RnSUB Rd, Rn, operand2, operand2减法运算指令减法运算指令RdRdRn-o

22、perand2Rn-operand2SUBcondSSUBcondS RSB Rd, RnRSB Rd, Rn, operand2, operand2逆向减法指令逆向减法指令RdRdoperand2-Rnoperand2-RnRSBcondSRSBcondS ADC Rd, RnADC Rd, Rn, operand2, operand2带进位带进位加法加法RdRdRn+operand2+CarryRn+operand2+CarryADCcondSADCcondS SBC Rd, RnSBC Rd, Rn, operand2, operand2带进位减法指令带进位减法指令RdRdRn-oper

23、and2-Rn-operand2-(NOT)Carry(NOT)CarrySBCcondSSBCcondS RSC Rd, RnRSC Rd, Rn, operand2, operand2带进位逆向减法带进位逆向减法指令指令RdRdoperand2-Rn-operand2-Rn-(NOT)Carry(NOT)CarryRSCcondSRSCcondS ARM数据处理指令数据处理指令算术运算算术运算 带进位加法指令带进位加法指令ADCADC将将operand2operand2的值与的值与RnRn的值相加,再加上的值相加,再加上CPSRCPSR中的中的C C条件标志位,结果保存到条件标志位,结果保

24、存到RdRd寄存器。指令格式如下:寄存器。指令格式如下: ADCcondS Rd,Rn,operand2 应用示例(应用示例(使用使用ADCADC实现实现6464位加法位加法,结果存于,结果存于R1R1、R0R0中):中): ADDS R0,R0,R2 ;R0;R0等于低等于低3232位相加,并影响标志位位相加,并影响标志位 ADC R1,R1,R3;R1;R1等于高等于高3232位相加,并加上低位进位位相加,并加上低位进位2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系12助记符助记符说明说明操作操作条件码位置条件码位置ADD Rd, RnADD Rd, R

25、n, operand2, operand2加法运算指令加法运算指令RdRdRn+operand2Rn+operand2ADDcondSADDcondS SUB Rd, RnSUB Rd, Rn, operand2, operand2减法运算指令减法运算指令RdRdRn-operand2Rn-operand2SUBcondSSUBcondS RSB Rd, RnRSB Rd, Rn, operand2, operand2逆向减法指令逆向减法指令RdRdoperand2-Rnoperand2-RnRSBcondSRSBcondS ADC Rd, RnADC Rd, Rn, operand2, op

26、erand2带进位加法带进位加法RdRdRn+operand2+CarryRn+operand2+CarryADCcondSADCcondS SBC Rd, RnSBC Rd, Rn, operand2, operand2带进位带进位减法指令减法指令RdRdRn-operand2-Rn-operand2-(NOT)Carry(NOT)CarrySBCcondSSBCcondS RSC Rd, RnRSC Rd, Rn, operand2, operand2带进位逆向减法带进位逆向减法指令指令RdRdoperand2-Rn-operand2-Rn-(NOT)Carry(NOT)CarryRSCc

27、ondSRSCcondS ARM数据处理指令数据处理指令算术运算算术运算 带进位减法指令带进位减法指令SBCSBC用寄存器用寄存器RnRn减去减去operand2operand2,再减去,再减去CPSRCPSR中的中的C C条件标志位的非条件标志位的非( (即若即若C C标志清零,则结果减去标志清零,则结果减去1) 1),结果保存到,结果保存到RdRd中。指中。指令格式如下:令格式如下: SBCcondS Rd,Rn,operand2 应用示例(使用应用示例(使用SBCSBC实现实现6464位减法,结果存于位减法,结果存于R1R1、R0R0中):中): SUBS R0,R0,R2 ; ; 低低

28、3232位相减,并影响标志位位相减,并影响标志位 SBC R1,R1,R3; ;高高3232位相减,并减去低位借位位相减,并减去低位借位2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系13助记符助记符说明说明操作操作条件码位置条件码位置ADD Rd, RnADD Rd, Rn, operand2, operand2加法运算指令加法运算指令RdRdRn+operand2Rn+operand2ADDcondSADDcondS SUB Rd, RnSUB Rd, Rn, operand2, operand2减法运算指令减法运算指令RdRdRn-operand2Rn-

29、operand2SUBcondSSUBcondS RSB Rd, RnRSB Rd, Rn, operand2, operand2逆向减法指令逆向减法指令RdRdoperand2-Rnoperand2-RnRSBcondSRSBcondS ADC Rd, RnADC Rd, Rn, operand2, operand2带进位加法带进位加法RdRdRn+operand2+CarryRn+operand2+CarryADCcondSADCcondS SBC Rd, RnSBC Rd, Rn, operand2, operand2带进位减法指令带进位减法指令RdRdRn-operand2-Rn-op

30、erand2-(NOT)Carry(NOT)CarrySBCcondSSBCcondS RSC Rd, RnRSC Rd, Rn, operand2, operand2带进位逆向减法带进位逆向减法指令指令RdRdoperand2-Rn-operand2-Rn-(NOT)Carry(NOT)CarryRSCcondSRSCcondS ARM数据处理指令数据处理指令算术运算算术运算 带进位逆向减法指令带进位逆向减法指令RSCRSC指令用寄存器指令用寄存器operand2operand2减去减去RnRn,再减去,再减去CPSRCPSR中的中的C C条件标志位,结果保存到条件标志位,结果保存到RdRd

31、中。指令格式如下:中。指令格式如下: RSCcondS Rd,Rn,operand2 应用示例(使用应用示例(使用RSCRSC指令实现指令实现求求6464位数值的负数位数值的负数 ):): RSBS R2,R0,#0 RSC R3,R1,#02021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系14助记符助记符说明说明操作操作条件码位置条件码位置AND Rd, RnAND Rd, Rn, operand2, operand2逻辑逻辑与与操作指令操作指令RdRdRnRn & operand2 & operand2ANDcondSANDcondS ORR

32、 Rd, RnORR Rd, Rn, operand2, operand2逻辑逻辑或或操作指令操作指令RdRdRnRn | operand2 | operand2ORRcondSORRcondS EOR Rd, RnEOR Rd, Rn, operand2, operand2逻辑逻辑异或异或操作指操作指令令RdRdRnRn operand2 operand2EORcondSEORcondS BIC Rd, RnBIC Rd, Rn, operand2, operand2位清除位清除指令指令RdRdRnRn & (operand2) & (operand2)BICcondSBIC

33、condS ARM数据处理指令数据处理指令逻辑运算指令逻辑运算指令2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系15助记符助记符说明说明操作操作条件码位置条件码位置AND Rd, RnAND Rd, Rn, operand2, operand2逻辑与逻辑与操作指令操作指令RdRdRnRn & operand2 & operand2ANDcondSANDcondS ORR Rd, RnORR Rd, Rn, operand2, operand2逻辑或操作指令逻辑或操作指令RdRdRnRn | operand2 | operand2ORRcond

34、SORRcondS EOR Rd, RnEOR Rd, Rn, operand2, operand2逻辑异或操作指逻辑异或操作指令令RdRdRnRn operand2 operand2EORcondSEORcondS BIC Rd, RnBIC Rd, Rn, operand2, operand2位清除指令位清除指令RdRdRnRn & (operand2) & (operand2)BICcondSBICcondS ARM数据处理指令数据处理指令逻辑运算指令逻辑运算指令 逻辑与操作指令逻辑与操作指令ANDAND指令将指令将operand2operand2的值与寄存器的值与寄存器

35、RnRn的值按位的值按位作逻辑作逻辑“与与”操作,结果保存到操作,结果保存到RdRd中。指令格式如下:中。指令格式如下: ANDcondS Rd,Rn,operand2 应用示例:应用示例: ANDS R0,R0,#0 x01 ;R0=R0&0 x01;R0=R0&0 x01,取出最低位数据,取出最低位数据 AND R2,R1,R3;R2=R1&R3;R2=R1&R3 2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系16助记符助记符说明说明操作操作条件码位置条件码位置AND Rd, RnAND Rd, Rn, operand2,

36、 operand2逻辑与操作指令逻辑与操作指令RdRdRnRn & operand2 & operand2ANDcondSANDcondS ORR Rd, RnORR Rd, Rn, operand2, operand2逻辑或逻辑或操作指令操作指令RdRdRnRn | operand2 | operand2ORRcondSORRcondS EOR Rd, RnEOR Rd, Rn, operand2, operand2逻辑异或操作指逻辑异或操作指令令RdRdRnRn operand2 operand2EORcondSEORcondS BIC Rd, RnBIC Rd, Rn,

37、operand2, operand2位清除指令位清除指令RdRdRnRn & (operand2) & (operand2)BICcondSBICcondS ARM数据处理指令数据处理指令逻辑运算指令逻辑运算指令 逻辑或操作指令逻辑或操作指令ORRORR指令将指令将operand2operand2的值与寄存器的值与寄存器RnRn的值按位的值按位作逻辑作逻辑“或或”操作,结果保存到操作,结果保存到RdRd中。指令格式如下:中。指令格式如下: ORRcondS Rd,Rn, operand2 应用示例:应用示例: ORR R0,R0,#0 x0F; ;将将R0R0的低的低4 4位置

38、位置1 1 MOVR1,R2,LSR #24 ;( ;(使用使用ORRORR指令将指令将R2R2的高的高8 8位位 ORRR3,R1,R3,LSL #8; ;数据移入到数据移入到R3R3低低8 8位中位中) ) 002021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系17助记符助记符说明说明操作操作条件码位置条件码位置AND Rd, RnAND Rd, Rn, operand2, operand2逻辑与操作指令逻辑与操作指令RdRdRnRn & operand2 & operand2ANDcondSANDcondS ORR Rd, RnORR Rd

39、, Rn, operand2, operand2逻辑或操作指令逻辑或操作指令RdRdRnRn | operand2 | operand2ORRcondSORRcondS EOR Rd, RnEOR Rd, Rn, operand2, operand2逻辑异或逻辑异或操作指操作指令令RdRdRnRn operand2 operand2EORcondSEORcondS BIC Rd, RnBIC Rd, Rn, operand2, operand2位清除指令位清除指令RdRdRnRn & (operand2) & (operand2)BICcondSBICcondS ARM数据处理

40、指令数据处理指令逻辑运算指令逻辑运算指令 逻辑异或操作指令逻辑异或操作指令EOREOR指令将指令将operand2operand2的值与寄存器的值与寄存器RnRn的值按位的值按位作逻辑作逻辑“异或异或”操作,结果保存到操作,结果保存到RdRd中。指令格式如下:中。指令格式如下: EORcondS Rd,Rn, operand2 应用示例:应用示例: EORR1,R1,#0 x0F; ;将将R1R1的低的低4 4位取反位取反 EOR R2,R1,R0;R2=R1R0;R2=R1R0 EORSR0,R5,#0 x01; ; 将将R5R5和和0 x010 x01进行逻辑异或,进行逻辑异或,; ;结果

41、保存到结果保存到R0R0,并影响标志位,并影响标志位 2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系18助记符助记符说明说明操作操作条件码位置条件码位置AND Rd, RnAND Rd, Rn, operand2, operand2逻辑与操作指令逻辑与操作指令RdRdRnRn & operand2 & operand2ANDcondSANDcondS ORR Rd, RnORR Rd, Rn, operand2, operand2逻辑或操作指令逻辑或操作指令RdRdRnRn | operand2 | operand2ORRcondSORRco

42、ndS EOR Rd, RnEOR Rd, Rn, operand2, operand2逻辑异或操作指逻辑异或操作指令令RdRdRnRn operand2 operand2EORcondSEORcondS BIC Rd, RnBIC Rd, Rn, operand2, operand2位清除位清除指令指令RdRdRnRn & (operand2) & (operand2)BICcondSBICcondS ARM数据处理指令数据处理指令逻辑运算指令逻辑运算指令 位清除指令位清除指令BICBIC指令将寄存器指令将寄存器RnRn的值与的值与operand2operand2的值的反码按

43、位的值的反码按位作逻辑作逻辑“与与”操作,结果保存到操作,结果保存到RdRd中。指令格式如下:中。指令格式如下: BICcondS Rd,Rn, operand2 应用示例:应用示例: BIC R1,R1,#0 x0F; ;将将R1R1的低的低4 4位清零,其它位不变位清零,其它位不变 BICR1,R2,R3; ;将将R3R3的反码和的反码和R2R2相逻辑相逻辑“与与”,; ;结果保存到结果保存到R1R1中中2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系19助记符助记符说明说明操作操作条件码位置条件码位置CMP RnCMP Rn, operand2, ope

44、rand2比较比较指令指令标志标志N N、Z Z、C C、V VRn-Rn-operand2operand2CMPcondCMPcond CMN RnCMN Rn, operand2, operand2负数比较负数比较指令指令标 志标 志 N N 、 Z Z 、 C C 、V VRn+operand2Rn+operand2CMNcondCMNcond TST RnTST Rn, operand2, operand2位测试位测试指令指令标志标志N N、Z Z、C C、V VRnRn & & operand2operand2TSTcondTSTcond TEQ RnTEQ Rn,

45、operand2, operand2相等测试相等测试指令指令标志标志N N、Z Z、C C、V VRnRn operand2operand2TEQcondTEQcond ARM数据处理指令数据处理指令比较指令比较指令2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系20助记符助记符说明说明操作操作条件码位置条件码位置CMP RnCMP Rn, operand2, operand2比较指令比较指令标志标志N N、Z Z、C C、V VRn-Rn-operand2operand2CMPcondCMPcond CMN RnCMN Rn, operand2, opera

46、nd2负数比较指令负数比较指令标 志标 志 N N 、 Z Z 、 C C 、V VRn+operand2Rn+operand2CMNcondCMNcond TST RnTST Rn, operand2, operand2位测试指令位测试指令标志标志N N、Z Z、C C、V VRnRn & & operand2operand2TSTcondTSTcond TEQ RnTEQ Rn, operand2, operand2相等测试指令相等测试指令标志标志N N、Z Z、C C、V VRnRn operand2operand2TEQcondTEQcond ARM数据处理指令数据处理

47、指令比较指令比较指令 比较指令比较指令CMPCMP指令将寄存器指令将寄存器RnRn的值减去的值减去operand2operand2的值,的值,根据操根据操作的结果更新作的结果更新CPSRCPSR中的相应条件标志位中的相应条件标志位,以便后面的指令根据相应的条件,以便后面的指令根据相应的条件标志来判断是否执行。指令格式如下:标志来判断是否执行。指令格式如下: CMPcondRn, operand2 应用示例:应用示例: CMPR1,#10 ; R1; R1与与1010比较,设置相关标志位比较,设置相关标志位 CMPR1,R2; ; R1R1与与R2R2比较,设置相关标志位比较,设置相关标志位 2

48、021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系21助记符助记符说明说明操作操作条件码位置条件码位置CMP RnCMP Rn, operand2, operand2比较指令比较指令标志标志N N、Z Z、C C、V VRn-Rn-operand2operand2CMPcondCMPcond CMN RnCMN Rn, operand2, operand2负数比较指令负数比较指令标 志标 志 N N 、 Z Z 、 C C 、V VRn+operand2Rn+operand2CMNcondCMNcond TST RnTST Rn, operand2, operan

49、d2位测试指令位测试指令标志标志N N、Z Z、C C、V VRnRn & & operand2operand2TSTcondTSTcond TEQ RnTEQ Rn, operand2, operand2相等测试指令相等测试指令标志标志N N、Z Z、C C、V VRnRn operand2operand2TEQcondTEQcond ARM数据处理指令数据处理指令比较指令比较指令 比较指令比较指令CMPCMP指令将寄存器指令将寄存器RnRn的值减去的值减去operand2operand2的值,根据操的值,根据操作的结果更新作的结果更新CPSRCPSR中的相应条件标志位,以便

50、后面的指令根据相应的条件中的相应条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。指令格式如下:标志来判断是否执行。指令格式如下: CMPcondRn, operand2 注意注意:CMPCMP指令与指令与SUBSSUBS指令的区别在于指令的区别在于CMPCMP指令不保存运算结果指令不保存运算结果。在进。在进行两个数据的大小判断时,常用行两个数据的大小判断时,常用CMPCMP指令及相应的条件码来操作。指令及相应的条件码来操作。 2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系22助记符助记符说明说明操作操作条件码位置条件码位置CMP RnCMP Rn

51、, operand2, operand2比较指令比较指令标志标志N N、Z Z、C C、V VRn-Rn-operand2operand2CMPcondCMPcond CMN RnCMN Rn, operand2, operand2负数比较指令负数比较指令标 志标 志 N N 、 Z Z 、 C C 、V VRn+operand2Rn+operand2CMNcondCMNcond TST RnTST Rn, operand2, operand2位测试指令位测试指令标志标志N N、Z Z、C C、V VRnRn & & operand2operand2TSTcondTSTcond

52、 TEQ RnTEQ Rn, operand2, operand2相等测试指令相等测试指令标志标志N N、Z Z、C C、V VRnRn operand2operand2TEQcondTEQcond ARM数据处理指令数据处理指令比较指令比较指令 负数比较指令负数比较指令CMNCMN指令使用寄存器指令使用寄存器RnRn的值的值加上加上operand2operand2的值,的值,根据操作的结果更新根据操作的结果更新CPSRCPSR中的相应条件标志位,以便后面的指令根据相应中的相应条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。指令格式如下:的条件标志来判断是否执行。指令格式如下: C

53、MNcondRn, operand2 应用示例:应用示例: CMNR0,#1 ; R0; R0与与-1 -1比较,如果相等,则设置比较,如果相等,则设置Z Z标志位标志位2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系23助记符助记符说明说明操作操作条件码位置条件码位置CMP RnCMP Rn, operand2, operand2比较指令比较指令标志标志N N、Z Z、C C、V VRn-Rn-operand2operand2CMPcondCMPcond CMN RnCMN Rn, operand2, operand2负数比较指令负数比较指令标 志标 志 N

54、 N 、 Z Z 、 C C 、V VRn+operand2Rn+operand2CMNcondCMNcond TST RnTST Rn, operand2, operand2位测试指令位测试指令标志标志N N、Z Z、C C、V VRnRn & & operand2operand2TSTcondTSTcond TEQ RnTEQ Rn, operand2, operand2相等测试指令相等测试指令标志标志N N、Z Z、C C、V VRnRn operand2operand2TEQcondTEQcond ARM数据处理指令数据处理指令比较指令比较指令 负数比较指令负数比较指令

55、CMNCMN指令使用寄存器指令使用寄存器RnRn的值的值加上加上operand2operand2的值,的值,根据操作的结果更新根据操作的结果更新CPSRCPSR中的相应条件标志位,以便后面的指令根据相应中的相应条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。指令格式如下:的条件标志来判断是否执行。指令格式如下: CMNcondRn, operand2注意注意:CMNCMN指令与指令与ADDSADDS指令的区别在于指令的区别在于CMNCMN指令不保存运算结果指令不保存运算结果。CMNCMN指令可用于负数比较,比如指令可用于负数比较,比如CMN R0,#1CMN R0,#1指令则表示指

56、令则表示R0R0与与-1 -1比较,若比较,若等,则等,则Z Z置位;否则置位;否则Z Z复位。复位。 2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系24助记符助记符说明说明操作操作条件码位置条件码位置CMP RnCMP Rn, operand2, operand2比较指令比较指令标志标志N N、Z Z、C C、V VRn-Rn-operand2operand2CMPcondCMPcond CMN RnCMN Rn, operand2, operand2负数比较指令负数比较指令标 志标 志 N N 、 Z Z 、 C C 、V VRn+operand2Rn+

57、operand2CMNcondCMNcond TST RnTST Rn, operand2, operand2位测试指令位测试指令标志标志N N、Z Z、C C、V VRnRn & & operand2operand2TSTcondTSTcond TEQ RnTEQ Rn, operand2, operand2相等测试指令相等测试指令标志标志N N、Z Z、C C、V VRnRn operand2operand2TEQcondTEQcond ARM数据处理指令数据处理指令比较指令比较指令 位测试指令位测试指令TSTTST指令将寄存器指令将寄存器RnRn的值与的值与operand

58、2operand2的值的值按位按位作逻辑作逻辑“与与”操作操作,根据操作的结果,根据操作的结果更新更新CPSRCPSR中的相应条件标志位中的相应条件标志位,以便后面的,以便后面的指令根据相应的条件标志来判断是否执行。指令格式如下:指令根据相应的条件标志来判断是否执行。指令格式如下: TSTcond Rn, operand2 应用示例:应用示例: TSTR0,#0 x01; ; 判断判断R0R0的最低位是否为的最低位是否为0 0 TSTR1,#0 x0F; ; 判断判断R1R1的低的低4 4位是否为位是否为0 0 2021-11-20哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系

59、25助记符助记符说明说明操作操作条件码位置条件码位置CMP RnCMP Rn, operand2, operand2比较指令比较指令标志标志N N、Z Z、C C、V VRn-Rn-operand2operand2CMPcondCMPcond CMN RnCMN Rn, operand2, operand2负数比较指令负数比较指令标 志标 志 N N 、 Z Z 、 C C 、V VRn+operand2Rn+operand2CMNcondCMNcond TST RnTST Rn, operand2, operand2位测试指令位测试指令标志标志N N、Z Z、C C、V VRnRn &

60、; & operand2operand2TSTcondTSTcond TEQ RnTEQ Rn, operand2, operand2相等测试指令相等测试指令标志标志N N、Z Z、C C、V VRnRn operand2operand2TEQcondTEQcond ARM数据处理指令数据处理指令比较指令比较指令 位测试指令位测试指令TSTTST指令将寄存器指令将寄存器RnRn的值与的值与operand2operand2的值按位作逻辑的值按位作逻辑“与与”操作,根据操作的结果更新操作,根据操作的结果更新CPSRCPSR中的相应条件标志位,以便后面的中的相应条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。指令格式如下:指令根据相应的条件标志来判断是否执行。指令格式如下: TSTcond Rn, operand2注意注意:TSTTST指令与指令与ANDSANDS指令的区别在于指令的区别在于TSTTST指令不保存运算结果指令不保存运算结果。TSTTST指指令通常与令通常与EQE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论