A.6.5  
ベースレジスタ指定時の外部変数アクセス最適化
 
RAMセクションのベースレジスタにR13を指定した場合、RAMセクションへのアクセスが、R13レジスタ相対となります。更にモジュール間の外部変数アクセス最適化を有効にした場合、R13レジスタ相対値が最適化されて、8bit範囲以下の値であれば、命令サイズが小さくなる場合があります。
【使用例】
改善前ソースコード
int a; 
int b; 
int c; 
int d; 
void fu{
       a=0; 
       b=1; 
       c=2; 
       d=3; 
} 
 | 
 
改善前アセンブリ展開コード
_func: 
       MOV.L #_a,R4 
       MOV.L #0000000H,[R4] 
       MOV.L #_b,R4 
       MOV.L #00000001H,{R4}
       MOV.L #_c,R4 
       MOV.L #00000002H,[R4] 
       MOV.L #_d,[R4] 
       MOV.L #00000003H,[R4] 
       RTS 
 | 
 
改善後ソースコード
int a; 
int b; 
int c; 
int d; 
void fu{
       a=0; 
       b=1; 
       c=2; 
       d=3; 
} 
 | 
 
改善後アセンブリ展開コード
__func: 
        MOV.L #0000000H,_a-__RAM_TOP:16[R13] 
        MOV.L #0000001H,_b-__RAM_TOP:16[R13] 
        MOV.L #0000002H,_c-__RAM_TOP:16[R13] 
        MOV.L #0000003H,_d-__RAM_TOP:16[R13] 
        RTS 
 |