Es ist egal welche Variante du nimmst.
Write-Only-Register lesen sich, in diesem Fall, immer als 0, egal auf welche Werte das Register gesetzt ist.
Das ist nicht richtig.
Die Variante mit dem Oder braucht unnötigerweise etliche Takte mehr, da erst das Register gelesen werden muss, danach die Verknüpfung erfolgt und anschließend der Wert zurückgeschrieben wird -> also ein Vielfaches der Zeit.


WO-Register verwendet der Hersteller für Register welche in typischen Anwendungen nur bei der Initialisierung der Anwendung beschrieben werden müssen. Das spart Einiges an Transistoren und Platz auf dem Chip. Bei untypischen Anwendungen muss man sich dann halt mit dem Schattenregister behelfen.
Auch das ist nicht richtig. Der Grund ist, dass hier für den atomaren Zugriff ein Register geschaffen wurde, welches ein Setzen oder Zurücksetzen der Pins ermöglichen sollte.
Da ist ein Lesen natürlich unsinnig. Daher ist das ein WriteOnly-Register.