ROM/RAMが小さいRL78-S1コア用のスタートアップは,コード効率化を考慮し,スタック領域やbss属性の領域を初期化する代わりにRAM全体を初期化しています。RAMの先頭アドレス(__RAM_ADDR_START)と終了アドレス(RAM_ADDR_END)はリンカが決定します。__RAM_ADDR_START,および__RAM_ADDR_ENDについては「6.2.2 オプション指定により生成するシンボル」を参照してください。
;--------------------------------------------------
; initializing RAM
;--------------------------------------------------
MOVW HL,#LOWW(__RAM_ADDR_START)
MOVW AX,#LOWW(__RAM_ADDR_END)
BR $.L2_RAM
.L1_RAM:
MOV [HL+0],#0
INCW HL
.L2_RAM:
CMPW AX,HL
BNZ $.L1_RAM
|