Hola, usando máscaras.
Digamos que tus bits a colocar en A1, A3, A4, B1, B5, B6, B7 son respectivamente 101 1000. Luego los ordenas para el puerto A usando los 3 bits correspondientes y colocándolos en un byte:
0001 0010 //A1, A3, A4 = 101
Y los intercalas en el puerto A con una Or inclusiva
output_a(input_a() | 0b00010010);
Lo mismo pasa con B
00000010 //B1, B5, B6, B7 = 1000
output_b(input_b() | 0b00000010);