大家好,欢迎来到IT知识分享网。
MOVE指令:语法<指令>{<cond>}{S} Rd,N
MOV 把一个32位数送到一个寄存器 Rd=N
MVN 把一个32位数的非送到一个寄存器 Rd=~N
桶形移位寄存器:
ARM的一个显著特性是,可以在操作数进入ALU以前,对操作数进行指定位数的左移或者右移
使用桶形移位寄存器可以操作5种不同的指令
LSL 逻辑左移 logical shift left
LSR 逻辑右移 logical shiift right
ASR 算数右移 arithmetic
ROR 循环右移 rotate right
RRX 扩展的循环右移
在移位操作中C依据最后一位被移出的数据
算数指令
指令<cond><S>Rd,Rn,N
ADC 32位带进位加法 Rd=Rn+N+Carry
ADD 32位带加法 Rd=Rn+N
RSB 32位逆向减法 Rd=N-Rn
RSC 带进位的32位逆向减法 Rd=N-Rn-!(C)
SBC 带进位的32位减法 Rd=Rn-N-!C
SUB 32位减法 Rd=Rn-N
逻辑指令 <指令><cond>Rd,Rn,N
AND 32位逻辑与 Rd=Rn&N
ORR32位逻辑或 Rd=Rn|N
EOR32位逻辑异或 Rd=Rn^N
BIC 逻辑位清除 Rd=Rn&~N
此类指令无需使用S后缀即可改变状态标志位
比较指令 <指令><cond>Rn,N
CMN(compare negative)取负比较 依据Rn+N的值来定
CMP(compare)比较 Rn-N
TEQ(Test Equivalence)等值测试 Rn^N
TST(test bit)位测试 依据Rn&N
乘法指令
MLA<cond><S>Rd,Rm,Rs,Rn (multiplication with accumulate)乘累加 Rd=(Rm*Rs)+Rn
MUL<cond> <S>Rd, Rm,Rs 乘法 Rd=Rm*Rn
<指令><cond><S>RdL0 RdHi,Rm,Rs
SMLAL 长整型有符号乘累加[RdHi,RdLo]=[RdHi,RdLo]+(Rm*Rs)
SMULL长整型有符号乘 [RdHi,RdLo]=Rm*Rs
UMLAL 长整型无符号乘累加[RdHi,RdLo]=[RdHi,RdLo]+(Rm*Rs)
UMULL长整型无符号乘 [RdHi,RdLo]=Rm*Rs
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/20665.html