アセンブラで書いたら1バイト転送あたり
MIPS 10命令
ARM 6命令
になりました

MIPSはアドレッシングが貧弱なのと
PICのポート設定の問題で
命令数が多くなってしまった

どちらもポート順がバラバラで2グループにまたがったピン配で、他の(同じグループの)ポートはいじらない
データは転送データそのまま
という条件

PICだとポート設定が
SET, CLR両方を使うか
INVで反転しないとダメなんですよね