本帖最后由 吾要单片机 于 2018-2-4 17:43 编辑
表6.2.7 数据转送指令(33条) 汇编指令 | | | | | MOV<cond> Rd, Rj, [E]JMP #v6 | | | | | CPL<cond> Rd, Rj, [E]JMP #v6 | | | | | MOV<cond> RC, Rj, [E]JMP #v6 | | | | | MOV<cond> Rd, RC, [E]JMP #v6 | | | | | MOV<cond> Rd, PSR, [E]JMP #v6 | | | | | MOV<cond> PSR, Rj, [E]JMP #v6 | | | | | XCHG<cond> Rd, [Rn], Rj, [E]JMP #v6 | | | | | ULD.type<cond> Rd, [Rn+], #imm1, [E]JMP #v6 | Rd=(Utype)MEM[Rn], Rn+=#imm1<< type | | | | SLD.type<cond> Rd, [Rn+], #imm1, [E]JMP #v6 | Rd=(Stype)MEM[Rn], Rn+=#imm1<< type | | | | STR.type<cond> Rd, [Rn+], #imm1, [E]JMP #v6 | (type)MEM[Rn]=Rd, Rn+=#imm1<< type | | | | ULD.type<cond> Rd, [+Rn], #imm1, [E]JMP #v6 | Rn+=#imm1<< type , Rd=(Utype)MEM[Rn] | | | | SLD.type<cond> Rd, [+Rn], #imm1, [E]JMP #v6 | Rn+=#imm1<< type , Rd=(Stype)MEM[Rn] | | | | STR.type<cond> Rd, [+Rn], #imm1, [E]JMP #v6 | Rn+=#imm1<< type , (type)MEM[Rn]=Rd | | | | SLB<cond> Rd, [Rn, Rj], [E]JMP #v6 | | | | | | Rd=(Sbyte)MEM[Rn+ #uimm16] | | | | SLH<cond> Rd, [Rn, Rj], [E]JMP #v6 | | | | | | Rd=(Shalf)MEM[Rn+ #uimm16<<1] | | | | ULB<cond> Rd, [Rn, Rj], [E]JMP #v6 | | | | | | Rd=(Ubyte)MEM[Rn+ #uimm16] | | | | ULH<cond> Rd, [Rn, Rj], [E]JMP #v6 | | | | | | Rd=(Uhalf)MEM[Rn+ #uimm16<<1] | | | | ULW<cond> Rd, [Rn, Rj], [E]JMP #v6 | | | | | | Rd=(Uword)MEM[Rn+ #uimm16<<2] | | | | STRB<cond> Rd, [Rn, Rj], [E]JMP #v6 | | | | | | (byte)MEM[Rn+ #uimm16]=Rd | | | | STRH<cond> Rd, [Rn, Rj], [E]JMP #v6 | | | | | | (half)MEM[Rn+ #uimm16<<1]=Rd | | | | STRW<cond> Rd, [Rn, Rj], [E]JMP #v6 | | | | | | (word)MEM[Rn+ #uimm16<<2]=Rd | | | | ULD<cond> Rd, [SP, #uimm5], [E]JMP #v6 | Rd=(Uword)MEM[SP+ #uimm5<<2] | | | | STR<cond> Rd, [SP, #uimm5], [E]JMP #v6 | (Uword)MEM[SP+ #uimm5<<2] = Rd | | | | PUSH<cond> Rd, #uimm5, [E]JMP #v6 | | | | | POP<cond> Rd, #uimm5, [E]JMP #v6 | | | | |
说明: 1、如果前缀有WIMM #imm28指令,此时Rj就变为#imm4,两者组成32位立即数。 2、指令 MOV<cond> Rd, PSR, [E]JMP #v6和MOV<cond> PSR, Rj, [E]JMP #v6都是特权级指令。 3、在指令ULD/SLD.type<cond> Rd, [Rn+], #imm1, [E]JMP #v6中,type表示字长(即byte / half / word), 与此对应的操作说明中的type∈(0,1,2),#imm1∈(-1, 1). 4、在指令ULD/SLD.type<cond> Rd, [+Rn], #imm1, [E]JMP #v6中,type表示字长(即byte / half / word),与此对应的操作说明中的type∈(0,1,2),#imm1∈(-1,1). 5、在指令STR.type<cond> Rd,[Rn+], #imm1, [E]JMP #v6中,type表示字长(即byte / half / word), 与此对应的操作说明中的type∈(0,1,2),#imm1∈(-1,1). 6、在指令STR.type<cond> Rd,[+Rn], #imm1, [E]JMP #v6中,type表示字长(即byte / half / word), 与此对应的操作说明中的type∈(0,1,2),#imm1∈(-1, 1). 7、表中Stype指的是Sbyte、Shalf。Utype指的是Ubyte、Uhalf或Uword。 |