SSD1289 frame buffer

I don't understand why I can't replace R3 in the STR line with 0x0.

Because that is not how ARM assembler instructions work. The processor is not designed to do that.
All store instructions involve storing the value of a register not an immediate value.