r8 に読み込んだ 0x01010101 をそのまま使えばよいので、実質短縮できるのは「E3A08001(MOV r8,#1)」を消すことだけです。
つまり STRB も r8 のまま使えば同じ結果になります。
理由として、最初の
E59F801C で r8 に 0x01010101 を読み込み、
そのあと STR で [r1+1C]〜[r1+2C] に 0x01010101 を書いています。
0x01010101 の最下位バイトは 0x01 ですから、わざわざ
E3A08001 ; MOV r8,#1
で 1 を入れ直さなくても、r8 をそのまま使って
E5C18030 ; STRB r8,[r1,#0x30]
とすれば r1+30 の 1 バイトも 0x01 になります。
それ以上まとめて短くするには、ループや memset 相当の処理に書き換える必要があり、命令数は逆に増えやすいです。