.. allora non hai scelta ... devi leggerti i pin che ti interessano e metterli assieme in un solo byte (fai degli shift e delle OR)
Io seguirei il suggerimento di Guglielmo ..
byte portad = PORTD; // legge i pin 2-7 (bit 2-7)
byte portab = PORTB; // legge i pin 8-9 (bit 0-1)
portad = portad & B11111100; // azzerra bit 0-1 non utilizzati
portab = portab & B00000011; // azzerra bit 2-7 non utilizzati
byte porta = portad | portab; // unisce le due porte
Nel codice finale puoi riunire la lettura e l'operazione di and "&" in una unica riga.
Rispetto alla serie di "if" ritengo che questo codice si più veloce.