Holt schrieb:
die liegt ja dann in einem Cache oder Register und das daneben noch anderes Bytes stehen, ändert nichts daran das diese Byte direkt adressiert wurde
Ach? Und woher weißt du denn bei deinen z.B. nebeneinanderliegenden 4 Bytes, die du aus 8k nur mit 11 Bit adressiert hast, welches der 4 das direkt adressierte Byte ist? Die 2 dafür fehlenden Bits, um das eine Byte aus der 4 Bytes großen Gruppe auszuwählen, zauberst du wie aus dem Hut? Egal wie: Die 2 Bits sind jedenfalls Teil der direkten Adresse des Bytes, die zu den 11 Bits hinzukommen, mit denen du die 4er-Gruppe ausgewählt hast. Rein zufällig: 11+2 = 13 = log_2(8192) = ln(8192) / ln(2)
An der Stelle, an der das einzelne Byte adressiert wird (=direkte Adressierung) brauchst du den 13-bittigen Adressbus. Daran ändert sich sich auch nichts, weil du in einem Zwischenschritt erstmal eine größere Gruppe Bytes unter Nutzung nur eines Teils der direkten Adresse (11 Bit in deinem Beispiel) irgendwo zwischenlagerst, um dann in einem 2. Schritt das konkrete Byte aus der Gruppe zu fischen. Im dem ersten Zwischenschritt, den du 11-bittig schaffst, sind die Bytes _nicht_ direkt adressiert, was aber die Aufgabenstellung fordert. Du kannst also nicht nur die 11 Adressbits des ersten Schritts zählen und den 2. Schritt, der 2 weitere Adressbits erfordert, einfach unter den Tisch fallen lassen.
Oder anders:
Nenne uns mal deine 11-bittigen, direkten Adressen für folgende Bytes:
a) für das erste
b) für das zweite
c) für das vorletzte
d) für das allerletzte Byte
... der 8 "KByte" aus der Aufgabe. Der Adressraum möge bei 0 beginnen. Keine Spitzfindigkeiten wegen "KByte" bitte. Gehe von 8192 Bytes, also 8 KiByte aus. Rechnet sich einfacher und ist nicht der springende Punkt im Moment.