Das hatte ich zuerst auch in Erwägung gezogen, ist aber deutlich ineffizienter als die direkte Lösung. Außerdem hast du einen kleinen aber fatalen Fehler in deinem Code:
Port_Mask ist nicht vom Typ (uint8_t) sondern vom Typ (volatile uint8_t *).

mfG
Markus