Theoretische und technische Informatik - ganz praktisch
Herzlich willkommen auf der Question/Answer-Plattform zu Grundlagen der Informatik II. Wir wünschen Ihnen viel Spaß beim Lernen und Diskutieren!
Loggen Sie sich mit Ihrem KIT-Account (u...) ein, um loszulegen!
Beachten Sie auch diese Informationen zum Schnelleinstieg.
(Nicht-KIT-Studierende beachten bitte diese Informationen.)

Beliebteste Tags

verständnis alternativlösung klausur kellerautomat endlicher-automat grammatik regulärer-ausdruck turingmaschine pumpinglemma tipp zahlendarstellung cmos bonusklausur klausurrelevant komplexität schaltwerk binary-decision-diagram deterministisch assembler schaltnetz minimierung sprachen nichtdeterministisch huffman chomsky-normalform fehler-in-aufgabe anwesenheitsübung rechtslinear heimübung flip-flop huffman-kodierung cocke-younger-kasami-algorithmus kontextsensitive-grammatik kontextfreie-grammatik fehlererkennbarkeit hauptklausur vorlesungsfolien polynomialzeitreduktion kontextfreie-sprache faq gleitkommazahl fehlerkorrigierbarkeit rechtslineare-grammatik dateiorganisation cache darstellung-klausur nachklausur xwizard adressierungsarten mealy lambda endliche-automaten konjunktive-normalform pipelining zustände saalübung leeres-wort moore ohne-lösungen betriebssystem speicherorganisation monotone-grammatik 2-komplement hammingzahl lösungsweg fehler pumping-lemma-für-kontextfreie-sprachen pumping-lemma reguläre-sprache monoton kodierung berechenbarkeit klausureinsicht disjunktive-normalform abzählbarkeit info-ii bussysteme rechnerarchitektur entscheidbarkeit komplexitätsklassen chomsky-klassen ableitungsbaum vorlesungsaufzeichnung round-robin aufzählbarkeit minimierung-endlicher-automaten von-neumann-rechner binärzahl entscheidbar programmiersprachen stern-symbol automaten schaltnetze-und-schaltwerke nukit-fragen bewertung zugriffsarten umformung adressierung mengen binär-subtrahieren

Kategorien

1 Pluspunkt 0 Minuspunkte
421 Aufrufe
Hallo,

ich habe trotz Betrachtung der entsprechenden Folie (Folie 9-20) die indizierte Adressierung nicht verstanden.

Könnte mir jemand diese bitte nochmal erklären?

Warum ist hier der Datenbankinhalt genau um eine Adresse nach oben verschoben? Ist das immer so?

 

Danke
in REK-AH von uldzp uldzp Lernwillige(r) (170 Punkte)  

2 Antworten

1 Pluspunkt 0 Minuspunkte
Hallo,

bei der indizierten Adressierung, wird die Adresse berechnet, indem ich den Inhalt eines Indexregisters (dieses ist in der Aufabe mit 1 belegt, daher die Verschiebung um eine Zeile!) zu dem Operanden addiere. In dieser Aufabe sollen Sie das ganze nun quasi umkehren. Sie wissen also, dass vorher 1 auf das k addiert wurde und wollen die passende Zeile auslesen also in dem Fall immer bei k+1. Wenn das Indexregister anders belegt ist ändert sich die" Verschiebung" natürlich!

Viele Grüße,

Janina (Tutorin)
von utdbu utdbu Tutor(in) (107k Punkte)  
0 Pluspunkte 0 Minuspunkte

Vielleicht noch ein Kommentar zur praktischen Anwendung von relativer und indizierter Adressierung (weil das erfahrungsgemäß sehr beim Verstehen der Grundidee und beim Auseinanderhalten der beiden nach dem gleichen Prinzip arbeitenden Adressierungen hilft):

  • Indizierte Adressierung wird verwendet, um auf Array-Elemente zuzugreifen. Die Idee ist, dass auf Assembler-Ebene, wo es ja keine höheren Datentypen gibt, ein Array einfach aus einem sequentiellen Speicherblock gehört, der etwa die Adressen $n, n+1, \ldots, n+m$ umfasst. Damit man jetzt auf das $i$-te Element einfach durch (bspw.) LOAD $i$ zugreifen kann, anstatt immer $n+i$ schreiben zu müssen, lädt man einfach das Indexregister mit $n$.
  • Relative Adressierung ist nötig, damit man Programme schreiben kann, die unabhängig von ihrer Position im Speicher funktionieren. Sagen wir, Sie schreiben ein Programm, das den Befehl GOTO $i$ enthält. Dann bezieht sich $i$ bei direkter Adressierung (zumindest auf unterster Maschinensprachen-Ebene) nicht etwa auf die $i$-te Programmzeile, sondern auf die Speicherzelle an Adresse $i$. Das würde aber bedeuten, dass Sie erstens schon während der Programmierung wissen müssten, wo Ihr Programm im Speicher liegt, und dass zweitens ein Umkopieren des Programms an eine andere Stelle zum Verlust von dessen Funktion führen würde. Stattdessen kann man durch Nutzung der relativen Adressierung wieder das entsprechende Register mit der Adresse des Programmbeginns füllen und muss sich danach nicht mehr um die absolute Position im Speicher kümmern.
von Dozent (10.1m Punkte)  
...