你的位置: 首页 > 通信技术 > 嵌入式系统

Thumb指令集

2016-10-26 09:33:31 | 人围观 | 评论:

    Thumb指令集可以看做ARM指令集的一个子集,其用于支持存储系统数据总线为16位的应用系统。Thumb指令长度为16位,这样,与32位的ARM指令集相比,有效地节省了系统的存储空间。但Thumb指令集中的数据处理指令的操作数仍然是32位的,指令寻址地址也是32位的。
    在实际应用中,若对系统的性能有较高要求,则选arm指令集和32位的memory;若对系统的功耗有较高要求时,则选Thumb指令集和16位的memory;一般将两者混合使用,根据系统不同部分的不同需求,选用合适的指令,发挥两者的优势。
    Thumb指令集由数据处理指令、跳转指令、Load/Store指令和软件中断指令4大类构成。
    数据处理指令




标签:

相关内容推荐:

格 式 功 能
MOV Rd,imm_8;Rd=imm_8;Rd为R0~R7,imm_8为8位立即数
MOV Rd,Rn;Rd=Rn;Rd、Rn为R0~R15
MVN Rd,Rn;Rd=~Rn;Rd、Rn为R0~R7
NEG Rd,Rn;Rd=-Rn;Rd、Rn为R0~R7
ADD Rd,Rn,imm;Rd=Rn+imm;Rd为R0~R7,Rn为R0~R7或PC或SP;
Rn为PC或SP时,imm为10位立即数;
否则,imm为3位立即数
ADD Rd,Rn,Rm;Rd=Rn+Rm;Rd、Rn、Rm为R0~R7
ADD Rd,imm;Rd=Rd+imm;Rd为R0~R7或SP
Rd为SP时,imm为-508~+508间的4整数倍的数
否则,imm为8位立即数
ADD Rd,Rn;Rd=Rd+Rn;Rd、Rn为R0~R15
ADC Rd,Rn;Rd=Rd+Rn+carry;Rd、Rn为R0~R7,carry为进位标志值
SUB Rd,Rn,imm_3;Rd=Rn-imm_3;Rd、Rn为R0~R7,imm_3为3位立即数
SUB Rd,Rn,Rm;Rd=Rn-Rm;Rd、Rn、Rm为R0~R7,
SUB Rd,imm;Rd=Rd-imm;Rd为R0~R7或SP
Rd为SP时,imm为-508~+508间的4整数倍的数
否则,imm为8位立即数
SBC Rd,Rn;Rd=Rd-Rn-!carry;Rd、Rn为R0~R7,carry为进位标志值
MUL Rd,Rn;Rd=Rd×Rn;Rd、Rn为R0~R7
AND Rd,Rn;Rd=Rd&Rn;Rd、Rn为R0~R7
ORR Rd,Rn;Rd=Rd|Rn;Rd、Rn为R0~R7
EOR Rd,Rn;Rd=Rd^Rn;Rd、Rn为R0~R7
BIC Rd,Rn;Rd=Rd&(~Rn);Rd、Rn为R0~R7
ASR Rd,Rn;Rd=Rd算术右移Rn位;Rd、Rn为R0~R7
ASR Rd,Rn,imm_5;Rd=Rn算术右移imm_5位;Rd、Rn为R0~R7,
imm_5为1~32间的数值
LSL Rd,Rn;Rd=Rd逻辑左移Rn位;Rd、Rn为R0~R7
LSL Rd,Rn,imm_5;Rd=Rn逻辑左移imm_5位;Rd、Rn为R0~R7
LSR Rd,Rn;Rd=Rd逻辑右移Rn位;Rd、Rn为R0~R7
LSR Rd,Rn,imm_5;Rd=Rn逻辑右移imm_5位;Rd、Rn为R0~R7
ROR Rd,Rn;Rd=Rd循环右移Rn位;Rd、Rn为R0~R7
CMP Rn,Rm;根据Rn-Rm的值,修改CPSR的状态标志位;
Rn、Rm为R0~R7
CMP Rn,imm_8;根据Rn-imm_8的值,修改CPSR的状态标志位;
Rn为R0~R7
CMN Rn,Rm;根据Rn+Rm的值,修改CPSR的状态标志位;
Rn、Rm为R0~R7
TST Rn,Rm;根据Rn&Rm的值,修改CPSR的状态标志位;
Rn、Rm为R0~R7