第1章概述1.2.11SWIJTAG-DPCortex-M3处理器可配置为具有SW-DP或JTAG-DP调试端口的接口,或两者都有。这两个调试端口提供对系统中包括处理器寄存器在内的所有寄存器和存储器的调试访问。SW/JTAG-DP的详细描述见第12章调试端口。1.3可配置的选项这节描述处理器的配置选项,若想确认您的实现的配置,请联系您的implementor。1.3.1中断外部中断可配置为1~240个。中断优先级的位可配置为3~8位。1.3.2MPUCortex-M3系统可配置为包含一个MPU。MPU的详细描述见第9章存储器保护单元。1.3.3ETMCortex-M3系统可配置为包含一个ETM。ETM的详细描述见第16章嵌入式跟踪宏单元接口。1.4指令集汇总这节内容包括:处理器16位指令汇总?处理器32位指令汇总?表1-1列出了16位Cortex-M3指令。表1-116位Cortex-M3指令汇总操作汇编指令寄存器值与寄存器值及C标志相加ADC <Rd>,<Rm>3位立即数与寄存器值相加ADD <Rd>,<Rn>,#<immed_3>8位立即数与寄存器值相加ADD<Rd>,#<immed_8>低寄存器值与低寄存器值相加ADD <Rd>, <Rn>, <Rm>高寄存器值与低或高寄存器值相加ADD <Rd>, <Rm>PC加4(8位立即数)ADD<Rd>,PC,#<immed_8>*4SP加4(8位立即数)ADD<Rd>, SP,#<immed_8>*4SP加4(7位立即数)ADD<Rd>, SP, #<immed_7>*4或ADD SP, SP,#<immed_7>*4寄存器值按位与AND<Rd>,<Rm>算术右移,移位次数取决于立即数值ASR <Rd>,<Rm>,#<immed_5>算术右移,移位次数取决于寄存器中的值ASR<Rd>,<Rs>9
第 1 章 概述 9 1.2.11 SW/JTAG-DP Cortex-M3 处理器可配置为具有 SW-DP 或 JTAG-DP 调试端口的接口,或两者都有。这 两个调试端口提供对系统中包括处理器寄存器在内的所有寄存器和存储器的调试访问。 SW/JTAG-DP 的详细描述见第 12 章调试端口。 1.3 可配置的选项 这节描述处理器的配置选项,若想确认您的实现的配置,请联系您的 implementor。 1.3.1 中断 外部中断可配置为 1~240 个。 中断优先级的位可配置为 3~8 位。 1.3.2 MPU Cortex-M3 系统可配置为包含一个 MPU。 MPU 的详细描述见第 9 章存储器保护单元。 1.3.3 ETM Cortex-M3 系统可配置为包含一个 ETM。 ETM 的详细描述见第 16 章嵌入式跟踪宏单元接口。 1.4 指令集汇总 这节内容包括: z 处理器 16 位指令汇总 z 处理器 32 位指令汇总 表 1-1 列出了 16 位 Cortex-M3 指令。 表 1-1 16 位 Cortex-M3 指令汇总 操作 汇编指令 寄存器值与寄存器值及 C 标志相加 ADC <Rd>, <Rm> 3 位立即数与寄存器值相加 ADD <Rd>, <Rn>, #<immed_3> 8 位立即数与寄存器值相加 ADD <Rd>, #<immed_8> 低寄存器值与低寄存器值相加 ADD <Rd>, <Rn>, <Rm> 高寄存器值与低或高寄存器值相加 ADD <Rd>, <Rm> PC 加 4(8 位立即数) ADD <Rd>, PC, #<immed_8>*4 SP 加 4(8 位立即数) ADD <Rd>, SP, #<immed_8>*4 SP 加 4(7 位立即数) ADD <Rd>, SP, #<immed_7>*4 或 ADD SP, SP, #<immed_7>*4 寄存器值按位与 AND <Rd>, <Rm> 算术右移,移位次数取决于立即数值 ASR <Rd>, <Rm>, #<immed_5> 算术右移,移位次数取决于寄存器中的值 ASR <Rd>, <Rs>
第1章概述续表 1-1操作汇编指令条件分支B<cond><target address>无条件分支B<tartet address>位清零BIC <Rd>,<Rs>软件断点BKPT<immed_8>带链接分支BL<Rm>比较结果不为零时分支CBNZ <Rn>,<label>比较结果为零时分支CBZ <Rn>,<Rm>将寄存器值取反与另-一个寄存器值比较CMN <Rn>,<Rm>与8位立即数比较CMP<Rn>,#<immed_8>CMP<Rn>,<Rm>寄存器比较高寄存器与高或低寄存器比较CMP<Rn>,<Rm>改变处理器状态CPS <effect>,<iflags>将高或低寄存器的值复制到另一个高或低寄存器中CPY <Rd>, <Rm>寄存器的值按位异或EOR <Rd>, <Rm>以下一条指令为条件,以下面两条指令为条件,以下面三条指IT<cond>IT<><cond>令为条件,以下面四条指令为条件IT<x><y><cond>IT<x><y><2><cond>多个连续的存储器字加载LDMIA <Rn>!, <register>将基址寄存器与5位立即数偏移的和的地址处的数据加载到寄LDR <Rd>,[<Rn>, #<immed_5*4>]存器中LDR<Rd>,[<Rn>,<Rm>]将基址寄存器与寄存器偏移的和的地址处的数据加载到寄存器中将PC与8位立即数偏移的和的地址处的数据加载到寄存器中LDR <Rd>, [PC,#<immed_8>*4]LDR <Rd>, [SP, #<immed_8>*4]将SP与8位立即数偏移的和的地址处的数据加载到寄存器中将寄存器与5位立即数偏移的和的地址处的字节[7:0]加载到寄LDRB<Rd>,[<Rn>,#<immed_5>]存器中将寄存器与寄存器偏移的和的地址处的字节[7:0]加载到寄存LDRB<Rd>,[<Rn>,<Rm>]器中将寄存器与5位立即数偏移的和的地址处的半字[15:0]加载到LDRH <Rd>,[<Rn>,#<immed_5>*2]寄存器中将寄存器与寄存器偏移的和的地址处的半字[15:0]加载到寄存LDRH<Rd>,[<Rn>,<Rm>]器中将寄存器与寄存器偏移的和的地址处的带符号字节[7:0]加载LDRSB<Rd>,[<Rn>,<Rm>]到寄存器中将寄存器与寄存器偏移的和的地址处的带符号半字[15:0]加载LDRSH <Rd>,[<Rn>,<Rm>]到寄存器中逻辑左移,移位次数取决于立即数值LSL<Rd>,<Rm>,#<immed_5>逻辑左移,移位次数取决于寄存器中的值LSL<Rd>,<Rs>逻辑右移,移位次数取决于立即数值LSR <Rd>,<Rm>,#<immed_5>逻辑右移,移位次数取决于寄存器中的值LSR <Rd>,<Rs>将8位立即数传送到目标寄存器MOV<Rd>,#<immed_8>10
第 1 章 概述 10 续表 1-1 操作 汇编指令 条件分支 B<cond> <target address> 无条件分支 B<tartet address> 位清零 BIC <Rd>, <Rs> 软件断点 BKPT <immed_8> 带链接分支 BL <Rm> 比较结果不为零时分支 CBNZ <Rn>, <label> 比较结果为零时分支 CBZ <Rn>, <Rm> 将寄存器值取反与另一个寄存器值比较 CMN <Rn>, <Rm> 与 8 位立即数比较 CMP <Rn>, #<immed_8> 寄存器比较 CMP <Rn>, <Rm> 高寄存器与高或低寄存器比较 CMP <Rn>, <Rm> 改变处理器状态 CPS <effect>, <iflags> 将高或低寄存器的值复制到另一个高或低寄存器中 CPY <Rd>, <Rm> 寄存器的值按位异或 EOR <Rd>, <Rm> 以下一条指令为条件,以下面两条指令为条件,以下面三条指 令为条件,以下面四条指令为条件 IT<cond> IT<x> <cond> IT<x><y> <cond> IT<x><y><z> <cond> 多个连续的存储器字加载 LDMIA <Rn>!, <register> 将基址寄存器与5位立即数偏移的和的地址处的数据加载到寄 存器中 LDR <Rd>, [<Rn>, #<immed_5*4>] 将基址寄存器与寄存器偏移的和的地址处的数据加载到寄存 器中 LDR <Rd>, [<Rn>, <Rm>] 将 PC 与 8 位立即数偏移的和的地址处的数据加载到寄存器中 LDR <Rd>, [PC, #<immed_8>*4] 将 SP 与 8 位立即数偏移的和的地址处的数据加载到寄存器中 LDR <Rd>, [SP, #<immed_8>*4] 将寄存器与 5 位立即数偏移的和的地址处的字节[7:0]加载到寄 存器中 LDRB <Rd>, [<Rn>, #<immed_5>] 将寄存器与寄存器偏移的和的地址处的字节[7:0]加载到寄存 器中 LDRB <Rd>, [<Rn>, <Rm>] 将寄存器与 5 位立即数偏移的和的地址处的半字[15:0]加载到 寄存器中 LDRH <Rd>, [<Rn>, #<immed_5>*2] 将寄存器与寄存器偏移的和的地址处的半字[15:0]加载到寄存 器中 LDRH <Rd>, [<Rn>, <Rm>] 将寄存器与寄存器偏移的和的地址处的带符号字节[7:0]加载 到寄存器中 LDRSB <Rd>, [<Rn>, <Rm>] 将寄存器与寄存器偏移的和的地址处的带符号半字[15:0]加载 到寄存器中 LDRSH <Rd>, [<Rn>, <Rm>] 逻辑左移,移位次数取决于立即数值 LSL <Rd>, <Rm>, #<immed_5> 逻辑左移,移位次数取决于寄存器中的值 LSL <Rd>, <Rs> 逻辑右移,移位次数取决于立即数值 LSR <Rd>, <Rm>, #<immed_5> 逻辑右移,移位次数取决于寄存器中的值 LSR <Rd>, <Rs> 将 8 位立即数传送到目标寄存器 MOV <Rd>, #<immed_8>
第1章概述续表 1-1操作汇编指令将低寄存器值传送给低目标寄存器MOV<Rd>,<Rn>将高或低寄存器值传送给高或低目标寄存器MOV<Rd>,<Rm>寄存器值相乘MUL<Rd>, <Rm>将寄存器值取反后传送给目标寄存器MVN <Rd>,<Rm>将寄存器值取负并保存在目标寄存器中NEG<Rd>,<Rm>无操作NOP<C>将寄存器值按位作逻辑或操作ORR<Rd>,<Rm>寄存器出栈POP<寄存器>寄存器和PC出栈POP<寄存器,PC>寄存器压栈PUSH <registers>寄存器和LR压栈PUSH <registers, LR>将字内的字节逆向(reverse)并复制到寄存器中REV<Rd>,<Rn>将两个半字内的字节逆向并复制到寄存器中REV16 <Rd>, <Rn>将低半字[15:0]内的字节逆向并将符号位扩展,复制到寄存器REVSH <Rd>,<Rn>中。循环右移,移位次数由寄存器中的值标识ROR<Rd>,<Rs>寄存器中的值减去寄存器值和C标志SBC <Rd>,<Rm>发送事件SEV<C>将多个寄存器字保存到连续的存储单元中STMIA <Rn>!, <registers>将寄存器字保存到寄存器与5位立即数偏移的和的地址中STR <Rd>,[<Rn>,#<immed_5>*4]将寄存器字保存到寄存器地址中STR <Rd>,[<Rn>,<Rm>]将寄存器字保存到SP与8位立即数偏移的和的地址中STR <Rd>,[SP,#<immed_8> * 4]将寄存器字节[7:0]保存到寄存器与5位立即数偏移的和的地址STRB<Rd>,[<Rn>,#<immed_5>]中将寄存器字节[7:0]保存到寄存器地址中STRB<Rd>,[<Rn>,<Rm>]将寄存器半字[15:0]保存到寄存器与5位立即数偏移的和的地STRH <Rd>,[<Rn>, #<immed_5> * 2]址中将寄存器半字[15:0]保存到寄存器地址中STRH<Rd>,[<Rn>,#<immed_5>* 2]寄存器值减去3位立即数STRH <Rd>,[<Rn>,#<immed_5> * 2]寄存器值减去8位立即数SUB<Rd>,#<immed_8>寄存器值减去寄存器值SUB<Rd>,<Rn>,<Rm>SP减4(7位立即数)SUB SP,#<immed_7>* 4操作系统服务调用,带8位立即数调用代码SVC<immed_8>从寄存器中提取字节[7:0],传送到寄存器中,并用符号位扩展SXTB<Rd>,<Rm>到32位从寄存器中提取半字[15:0],传送到寄存器中,并用符号位扩SXTH<Rd>, <Rm>展到32位将寄存器与另一个寄存器相与,测试寄存器中的置位的位TST <Rn>,<Rm>从寄存器中提取字节[7:0],传送到寄存器中,并用零位扩展到UXTB <Rd>,<Rm>32位11
第 1 章 概述 11 续表 1-1 操作 汇编指令 将低寄存器值传送给低目标寄存器 MOV <Rd>, <Rn> 将高或低寄存器值传送给高或低目标寄存器 MOV <Rd>, <Rm> 寄存器值相乘 MUL <Rd>, <Rm> 将寄存器值取反后传送给目标寄存器 MVN <Rd>, <Rm> 将寄存器值取负并保存在目标寄存器中 NEG <Rd>, <Rm> 无操作 NOP <C> 将寄存器值按位作逻辑或操作 ORR <Rd>, <Rm> 寄存器出栈 POP <寄存器> 寄存器和 PC 出栈 POP <寄存器,PC> 寄存器压栈 PUSH <registers> 寄存器和 LR 压栈 PUSH <registers, LR> 将字内的字节逆向(reverse)并复制到寄存器中 REV <Rd>, <Rn> 将两个半字内的字节逆向并复制到寄存器中 REV16 <Rd>, <Rn> 将低半字[15:0]内的字节逆向并将符号位扩展,复制到寄存器 中。 REVSH <Rd>, <Rn> 循环右移,移位次数由寄存器中的值标识 ROR <Rd>, <Rs> 寄存器中的值减去寄存器值和C标志 SBC <Rd>, <Rm> 发送事件 SEV <c> 将多个寄存器字保存到连续的存储单元中 STMIA <Rn>!, <registers> 将寄存器字保存到寄存器与5位立即数偏移的和的地址中 STR <Rd>, [<Rn>, #<immed_5>*4] 将寄存器字保存到寄存器地址中 STR <Rd>, [<Rn>, <Rm>] 将寄存器字保存到SP与8位立即数偏移的和的地址中 STR <Rd>, [SP, #<immed_8> * 4] 将寄存器字节[7:0]保存到寄存器与5位立即数偏移的和的地址 中 STRB <Rd>, [<Rn>, #<immed_5>] 将寄存器字节[7:0]保存到寄存器地址中 STRB <Rd>, [<Rn>, <Rm>] 将寄存器半字[15:0]保存到寄存器与5位立即数偏移的和的地 址中 STRH <Rd>, [<Rn>, #<immed_5> * 2] 将寄存器半字[15:0]保存到寄存器地址中 STRH <Rd>, [<Rn>, #<immed_5> * 2] 寄存器值减去3位立即数 STRH <Rd>, [<Rn>, #<immed_5> * 2] 寄存器值减去8位立即数 SUB <Rd>, #<immed_8> 寄存器值减去寄存器值 SUB <Rd>, <Rn>, <Rm> SP减4(7位立即数) SUB SP, #<immed_7> * 4 操作系统服务调用,带8位立即数调用代码 SVC <immed_8> 从寄存器中提取字节[7:0],传送到寄存器中,并用符号位扩展 到32位 SXTB <Rd>, <Rm> 从寄存器中提取半字[15:0],传送到寄存器中,并用符号位扩 展到32位 SXTH <Rd>, <Rm> 将寄存器与另一个寄存器相与,测试寄存器中的置位的位 TST <Rn>, <Rm> 从寄存器中提取字节[7:0],传送到寄存器中,并用零位扩展到 32位 UXTB <Rd>, <Rm>
第1章概述续表 1-1操作汇编指令从寄存器中提取半字[15:0],传送到寄存器中,并用零位扩展UXTH<Rd>,<Rm>到32位等待事件WFE<c>WFI<c>等待中断表1-2列出了32位Coxtex-M3指令。表1-232位Coxtex-M3指令汇总操作汇编指令寄存器值与12位立即数及C位相加ADC(S).W<Rd>,<Rn>,#<modify_constant(immed_12>寄存器值与移位后的寄存器值及C位相加ADC(S).W <Rd>,<Rn>, <Rm>l, <shift>)寄存器值与12位立即数相加ADD(S).W<Rd>,<Rn>,#<modify_constant(immed_12)>寄存器值与移位后的寄存器值相加ADD(S).W<Rd>,<Rm>,<shift>)寄存器值与12位立即数相加ADDW.W<Rd>,<Rn>,#<immed_12>寄存器值与12位立即数按位与AND(S).W<Rd>,<Rn>,#<modify_constant(immed_12>寄存器值与移位后的寄存器值按位与AND(S).W<Rd>,<Rn>, Rm>[,<shif>)算术右移,移位次数取决于寄存器值ASR(S).W<Rd>,<Rn>,<Rm>条件分支B[cond).W<label>位区清零BFC.W<Rd>,#<lsb>,#<width>将一个寄存器的位区插入另一个寄存器中BFI.W<Rd>,<Rn>,#<lsb>,#<width>12位立即数取反与寄存器值按位与BIC(S).W<Rd>,<Rn>,#<modify_constant(immed_12)>BIC(S).W <Rd>,<Rn>, t, <shif>)移位后的寄存器值取反与寄存器值按位与BL <label>带链接的分支带链接的分支(立即数)BL<c><label>无条件分支B.W<label>返回寄存器值中零的数目CLZ.W <Rd>,<Rn>寄存器值与12位立即数两次取反后的值比较CMN.W<Rn>,#<modify_constant(immed_12)>寄存器值与移位后的寄存器值两次取反后的CMN.W<Rn>,<Rm>,<shif>!值比较寄存器值与12位立即数比较CMP.W<Rn>,#<modify_constant(immed_12)>寄存器值与移位后的寄存器值比较CMP.W <Rn>,<Rm>(,<shift>)DMB<c>数据存储器排序(barrier)数据同步排序(barrier)DSB <c>寄存器值与12位立即数作异或操作EOR(S).W <Rd>, <Rn>,#<modify_constant(immed_12)>寄存器值与移位后的寄存器值作异或操作EOR(S).W<Rd>,<Rn>,<Rm>/,<shift>)指令同步排序(barrier)ISB<c>多存储器寄存器加载,加载后加1或加载前减LDM(IA|DB).W <Rn>(!}, <registers>1保存寄存器地址与12位立即数偏移的和的地LDR.W<Rxf>,[<Rn>,#<offset_12>]址处的数据字将寄存器地址与12位立即数偏移的和的地址LDR.W PC, [<Rn>,#<offset_12>]处的数据字保存到PC中12
第 1 章 概述 12 续表 1-1 操作 汇编指令 从寄存器中提取半字[15:0],传送到寄存器中,并用零位扩展 到32位 UXTH <Rd>, <Rm> 等待事件 WFE <c> 等待中断 WFI <c> 表 1-2 列出了 32 位 Coxtex-M3 指令。 表 1-2 32 位 Coxtex-M3 指令汇总 操作 汇编指令 寄存器值与12位立即数及C位相加 ADC{S}.W <Rd>, <Rn>, #<modify_constant(immed_12> 寄存器值与移位后的寄存器值及C位相加 ADC{S}.W <Rd>, <Rn>, <Rm>{, <shift>} 寄存器值与12位立即数相加 ADD{S}.W <Rd>, <Rn>,#<modify_constant(immed_12)> 寄存器值与移位后的寄存器值相加 ADD{S}.W <Rd>, <Rm>{, <shift>} 寄存器值与12位立即数相加 ADDW.W <Rd>, <Rn>, #<immed_12> 寄存器值与12位立即数按位与 AND{S}.W <Rd>, <Rn>, #<modify_constant(immed_12> 寄存器值与移位后的寄存器值按位与 AND{S}.W <Rd>, <Rn>, Rm>{, <shift>} 算术右移,移位次数取决于寄存器值 ASR{S}.W <Rd>, <Rn>, <Rm> 条件分支 B{cond}.W <label> 位区清零 BFC.W <Rd>, #<lsb>, #<width> 将一个寄存器的位区插入另一个寄存器中 BFI.W <Rd>, <Rn>, #<lsb>, #<width> 12位立即数取反与寄存器值按位与 BIC{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)> 移位后的寄存器值取反与寄存器值按位与 BIC{S}.W <Rd>, <Rn>, {, <shift>} 带链接的分支 BL <label> 带链接的分支(立即数) BL<c> <label> 无条件分支 B.W <label> 返回寄存器值中零的数目 CLZ.W <Rd>, <Rn> 寄存器值与12位立即数两次取反后的值比较 CMN.W <Rn>, #<modify_constant(immed_12)> 寄存器值与移位后的寄存器值两次取反后的 值比较 CMN.W <Rn>, <Rm>{, <shift>} 寄存器值与12位立即数比较 CMP.W <Rn>, #<modify_constant(immed_12)> 寄存器值与移位后的寄存器值比较 CMP.W <Rn>, <Rm>{, <shift>} 数据存储器排序(barrier) DMB <c> 数据同步排序(barrier) DSB <c> 寄存器值与12位立即数作异或操作 EOR{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)> 寄存器值与移位后的寄存器值作异或操作 EOR{S}.W <Rd>, <Rn>, <Rm>{, <shift>} 指令同步排序(barrier) ISB <c> 多存储器寄存器加载,加载后加1或加载前减 1 LDM{IA|DB}.W <Rn>{!}, <registers> 保存寄存器地址与12位立即数偏移的和的地 址处的数据字 LDR.W <Rxf>, [<Rn>, #<offset_12>] 将寄存器地址与12位立即数偏移的和的地址 处的数据字保存到PC中 LDR.W PC, [<Rn>, #<offset_12>]
第1章概述续表1-2操作汇编指令将基址寄存器地址的8位立即数偏移的地址LDR.W PC,#<+/-<offset_8>处的数据字保存到PC中,后索引保存基址寄存器地址的8位立即数偏移的地LDR.W<Rxf>,[<Rn>], #+/-<offset_8>址处的数据字,后索引保存基址寄存器地址的8位立即数偏移的地LDR.W<Rxf>,[<Rn>,#<+/-<offset_8>]!址处的数据字,前索引将基址寄存器地址的8位立即数偏移的地址LDR.W PC,[<Rn>,#+/-<offset_8>]处的数据字保存到PC中,前索引保存寄存器地址左移0,1,2或3个位置后的LDR.W<Rxf>,[<Rn>,<Rm>[, LSL #<shif>]地址处的数据字将寄存器地址左移0,1,2或3个位置后的地LDR.W PC,[<Rn>,<Rm>(, LSL#<shif>]址处的数据字保存到PC中保存PC地址的12位立即数偏移的地址处的LDR.W <Rxf>,[PC,#+/-<offset_12>]数据字将PC地址的12位立即数偏移的地址处的数LDR.W PC, [PC,#+/-<offset_12>]据字保存到PC中保存基址寄存器地址与12位立即数偏移的和LDRB.W <Rxf>,[<Rn>,#<offset_12>]的地址处的字节[7:0]保存基址寄存器地址的8位立即数偏移的地LDRB.W <Rxf>. [<Rn>], #+/-<offset_8>址处的字节[7:0],后索引保存寄存器地址左移0,1,2或3个位置后的LDRB.W <Rxf>,[<Rn>,<Rm>(, LSL #<shift>]]地址处的字节[7:0]保存基址寄存器地址的8位立即数偏移的地LDRB.W <Rxf>,[<Rn>,#<+/-<offset_8>]!址处的字节[7:0],前索引保存PC地址的12位立即数偏移的地址处的LDRB.W <Rxf>, [PC,#+/-<offset_12>]字节保存寄存器地址8位偏移4的地址处的双字,LDRD.W <Rxf>,<Rxf2>,[<Rn>,#+/-<offset_8> * 4](!]前索引保存寄存器地址8位偏移4的地址处的双字,LDRD.W <Rxf>, <Rxf2>,[<Rn>], #+/-<offset_8> * 4后索引保存基址寄存器地址与12位立即数偏移的和LDRH.W <Rxf>,[KRn>,#<offset_12>]的地址处的半字[15:0]保存基址寄存器地址的8位立即数偏移的地LDRH.W<Rxf>,[<Rn>,#<+/-<offset_8>]!址处的半字[15:0],前索引保存基址寄存器地址的8位立即数偏移的地LDRH.W<Rxf>. [<Rn>], #+/-<offset_8>址处的半字[15:0],后索引保存基址寄存器地址左移0,1,2或3个位置LDRH.W <Rxf>,[<Rn>, <Rm>, LSL #<shif>]后的地址处的半字[15:0]保存PC地址的12位立即数偏移的地址处的LDRH.W<Rxf>,[PC,#+/-<offset_12>]半字13
第 1 章 概述 13 续表 1-2 操作 汇编指令 将基址寄存器地址的8位立即数偏移的地址 处的数据字保存到PC中,后索引 LDR.W PC, #<+/-<offset_8> 保存基址寄存器地址的8位立即数偏移的地 址处的数据字,后索引 LDR.W <Rxf>, [<Rn>], #+/–<offset_8> 保存基址寄存器地址的8位立即数偏移的地 址处的数据字,前索引 LDR.W <Rxf>, [<Rn>, #<+/–<offset_8>]! 将基址寄存器地址的8位立即数偏移的地址 处的数据字保存到PC中,前索引 LDR.W PC, [<Rn>, #+/–<offset_8>]! 保存寄存器地址左移0,1,2或3个位置后的 地址处的数据字 LDR.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}] 将寄存器地址左移0,1,2或3个位置后的地 址处的数据字保存到PC中 LDR.W PC, [<Rn>, <Rm>{, LSL #<shift>}] 保存PC地址的12位立即数偏移的地址处的 数据字 LDR.W <Rxf>, [PC, #+/–<offset_12>] 将PC地址的12位立即数偏移的地址处的数 据字保存到PC中 LDR.W PC, [PC, #+/–<offset_12>] 保存基址寄存器地址与12位立即数偏移的和 的地址处的字节[7:0] LDRB.W <Rxf>, [<Rn>, #<offset_12>] 保存基址寄存器地址的8位立即数偏移的地 址处的字节[7:0],后索引 LDRB.W <Rxf>. [<Rn>], #+/-<offset_8> 保存寄存器地址左移0,1,2或3个位置后的 地址处的字节[7:0] LDRB.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}] 保存基址寄存器地址的8位立即数偏移的地 址处的字节[7:0],前索引 LDRB.W <Rxf>, [<Rn>, #<+/–<offset_8>]! 保存PC地址的12位立即数偏移的地址处的 字节 LDRB.W <Rxf>, [PC, #+/–<offset_12>] 保存寄存器地址8位偏移4的地址处的双字, 前索引 LDRD.W <Rxf>, <Rxf2>, [<Rn>, #+/–<offset_8> * 4]{!} 保存寄存器地址8位偏移4的地址处的双字, 后索引 LDRD.W <Rxf>, <Rxf2>, [<Rn>], #+/–<offset_8> * 4 保存基址寄存器地址与12位立即数偏移的和 的地址处的半字[15:0] LDRH.W <Rxf>, [<Rn>, #<offset_12>] 保存基址寄存器地址的8位立即数偏移的地 址处的半字[15:0],前索引 LDRH.W <Rxf>, [<Rn>, #<+/–<offset_8>]! 保存基址寄存器地址的8位立即数偏移的地 址处的半字[15:0],后索引 LDRH.W <Rxf>. [<Rn>], #+/-<offset_8> 保存基址寄存器地址左移0,1,2或3个位置 后的地址处的半字[15:0] LDRH.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}] 保存PC地址的12位立即数偏移的地址处的 半字 LDRH.W <Rxf>, [PC, #+/–<offset_12>]