操作码目标操作数可选择的源操作数说明MOVARndirect@RiDPTRRn;direct;@Ri;#dataA;direct;#dataA;Rn;direct;@Ri;#dataA;direct;#data#data16内部传送内部传送内部传送内部传送数据指针赋值PUSHPOP隐含(SP
外部RAM数据传送MOVXA,@RiMOVXA, @DPTRMOVX@Ri, AMOVX@DPTR,A执行过程中会使/WR、/RD有效。例、试编写一程序段,实现将外RAM0FAH单元中的内容传送到外RAM 04FFH单元中。解:MOVDPTR,#04FFHMOVR0,#0FAHMOVXA,@R0
Load/Store内存访问指令在ARM寄存器和存储器之间传送数据。ARM指令中有3种基本的数据传送指令。
多寄存器Load/Store内存访问指令也叫批量加载/存储指令,它可以实现在一组寄存器和一块连续的内存单元之间传送数据。LDM用于加载多个寄存器,STM用于存储多个寄存器。多寄存器Load/Store内存访问指令允许一条指令传送16个寄存器的任何子集或所有寄存器。
MOV指令是最简单的ARM指令,执行的结果就是把一个数N送到目标寄存器Rd,其中N可以是寄存器,也可以是立即数。
MVN是反相传送(Move Negative)指令。它将操作数的反码传送到目的寄存器。MVN指令多用于向寄存器传送一个负数或生成位掩码。
交换指令是load/store指令的一种特例,它把一个寄存器单元的内容与寄存器内容交换。交换指令是一个原子操作(atomic operation),也就是说,在连续的总线操作中读/写一个存储单元,在操作期间阻止其他任何指令对该存储单元的读/写。
ARM指令集提供了两条指令,可直接控制程序状态寄存器(PSR,Program State Register)。MRS指令用于把CPSR或SPSR的值传送到一个寄存器;MSR与之相反,把一个寄存器的内容传送到CPSR或SPSR。这两条指令结合,可用于对CPSR和SPSR进行读/写操作。