Also. Eigentlich sollte das Datenblatt des Prozessors diese
Adressierungarten beschreiben.
Wenn der Adressraum des Prozessors groesser wie ein Adresspointer ist,
dann verwendet man segmentierte Adressierung. Dh es wird immer ein
Adresspointer zu einem Segmentregister hinzugezaehlt. Dh man muss ich
immer im Klaren darueber sein, in welchem Segmant die Variable nun ist.
Man kann zur Vereinfachung der Programmierung, zur verkleinerung der
codegroesse, fuer Arrayzugriffe ein indiziertes verfahren verwenden. In
diesem Verfahren wird jeweils zum Adresspointer ein Indexregister
hinzugezaehlt.
Relative Adressierung ist fast dasselbe. Man verwendet es bei Spruengen
im Code. Ein Jump wird als PC relativ ausgefuehrt, wenn man den
Sprungbereich einschraenken kann, zB auf 10 bit (+-512). Dadurch wird
der Operator, der geladen werden muss kuerzer. Es wird dieser Offset zum
Adresscounter hinzugezaehlt.
All diese Trick sollten vermeiden mit Pointern der vollen Laenge
operieren zu muessen, denn die muessen ja jeweils in die ALU, resp MMU
geladen werden.