第2部分嵌入式硬件系统设计5



《第2部分嵌入式硬件系统设计5》由会员分享,可在线阅读,更多相关《第2部分嵌入式硬件系统设计5(150页珍藏版)》请在文档大全上搜索。
1、2022-6-1哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系1ARM指令小节目录指令小节目录1.1.指令格式指令格式2.2.条件码条件码3.3.存储器访问指令存储器访问指令4.4.数据处理指令数据处理指令5.5.乘法指令乘法指令6.ARM6.ARM分支指令分支指令7.7.协处理器指令协处理器指令8.8.杂项指令杂项指令9.9.伪指令伪指令2022-6-1哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系22. 指令集介绍指令集介绍nARM指令集指令集ARM数据处理指令数据处理指令 数据处理指令大致可分为数据处理指令大致可分为3 3类:类: 数据传送指令;数据传送指
2、令;算术逻辑运算指令;算术逻辑运算指令;比较指令。比较指令。 数据处理指令只能对寄存器的内容进行操作,数据处理指令只能对寄存器的内容进行操作,而不能对内存中的数据进行操作而不能对内存中的数据进行操作。所有。所有ARMARM数据处数据处理指令均可选择使用理指令均可选择使用S S后缀,并影响状态标志。后缀,并影响状态标志。 2022-6-1哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系3 ARM数据处理指令数据处理指令指令编码指令编码指令执行的条件码指令执行的条件码I I用于区别立即数(用于区别立即数(I I为为1 1)和寄存器移位)和寄存器移位(I I为为0 0)opcodeop
3、code数据处理指数据处理指令操作码令操作码第二操作数第二操作数RdRd目标寄存器目标寄存器RnRn第一操作数寄存器第一操作数寄存器S S设置条件码,与指令设置条件码,与指令中的中的S S位对应位对应带进位加法带进位加法ADCADC01010101带进位减法指令带进位减法指令SBCSBC01100110带进位逆向减法指令带进位逆向减法指令RSCRSC01110111位测试指令位测试指令TSTTST10001000相等测试指令相等测试指令TEQTEQ10011001比较指令比较指令CMPCMP10101010负数比较指令负数比较指令CMNCMN10111011逻辑或操作指令逻辑或操作指令ORRO
4、RR11001100数据传送数据传送MOVMOV11011101位清除指令位清除指令BICBIC11101110数据非传送数据非传送MVNMVN11111111加法运算指令加法运算指令ADDADD01000100逆向减法指令逆向减法指令RSBRSB00110011减法运算指令减法运算指令SUBSUB00100010逻辑异或操作指令逻辑异或操作指令EOREOR00010001逻辑与操作指令逻辑与操作指令ANDAND00000000说明说明指令助记符指令助记符操作码操作码opcode操作码功能表操作码功能表2022-6-1哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系4助记符助记符
5、说明说明操作操作条件码位置条件码位置MOV Rd,operand2MOV Rd,operand2数据传送数据传送RdRdoperand2 operand2 MOVcondSMOVcondS MVN Rd,operand2MVN Rd,operand2数据非传送数据非传送RdRd(operand2)(operand2)MVNcondSMVNcondS ARM数据处理指令数据处理指令数据传送数据传送2022-6-1哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系5助记符助记符说明说明操作操作条件码位置条件码位置MOV Rd,operand2MOV Rd,operand2数据传送数据传
6、送RdRdoperand2 operand2 MOVcondSMOVcondS MVN Rd,operand2MVN Rd,operand2数据非传送数据非传送RdRd(operand2)(operand2)MVNcondSMVNcondS ARM数据处理指令数据处理指令数据传送数据传送 MOVMOV指令将指令将8 8位图立即数(参看位图立即数(参看“第第2 2操作数:操作数:#immed_8r#immed_8r常数常数表达式表达式 ”)或寄存器传送到目标寄存器()或寄存器传送到目标寄存器(RdRd),可用于),可用于移位运算移位运算等操等操作。指令格式如下:作。指令格式如下: MOVcond
7、S 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,子程序返回,子程序返回 2022-6-1哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系6助记符助记符说明说明操作操作条件码位置条件码位置MOV Rd,operand2MOV Rd,operand2数据传送数据传送RdRdoperand2 operand2 MOVcondSMOVcond
8、S 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取反,结果存到取反,结果存到R1R12022-6-1哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系7助记符助记符说明说明操作操作条件码位置条件码位置ADD Rd, RnADD Rd, Rn, operand2, operand2加法运算指令加法运算指令RdRdRn+operand2Rn+operand2ADDcondSADDcondS SUB Rd, RnSU
10、B 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 Rd, RnSBC Rd,
11、 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数据处理指令数据处理指令算术运算算术运算2022-6-1哈尔滨工业大学哈尔滨工业大学(威海威海) 通信工程通信工程系系8助记符助记符说明说明操作