LDR,STR

用于寄存器和外部存储器交换数据指令;
注意与 MOV 的区别,后面只在寄存器或常数交换;

LDR/STR可以采用多种寻址方式,以下只举出使用频率最高几种用法,LDR(load)用于把一个32Bit的WORD数据从外部存储空间装入到寄存器中:

LDR R0,[R1]; R1的值当成地址,再从这个地址装入数据到R0 (R0=*R1)
LDR R1,=0x30008000 ; 把地址0x30008000的值装入到R1中,LDR中用常数要用=打头.(注意跟MOV的区别,MOV是#)
LDR r0, =(0<<13)|(0<<12)|(0<<10)|(0<<9)|(0<<8)|(1<<6)|(1<<5)|(1<<4)|(1<<1)|(1<<0) ;用位与的方法赋值

STR(Store)

用于把一个寄存器的值存入外部存储空间,是LDR的逆操作.

STR R0,[R1] ; 把R0的值,存入到R1对应地址空间上(*R1 = R0)
STR R0,=0x30008000 ;把R0中值存入到地址0x30008000

S2C2440中 CPU 内核以外的模块的控制寄存器空间也是属于外部空间,所以也得用如下指令:

LDR R0,=GPFDAT