Всё, разобрался. Нумерация выходов идёт с нулевого бита, это раз. Регистры нужно было поменять местами, это два (то есть мой регистр out_mask_1 используется для больших выходов (27-24), а out_mask_2 для меньших (1-16)