Hallo,
In einfachen Worten gesagt, was macht eine indirekte
Adressierung für einen Sinn? Wo ist ihr Vorteil
gegenüber [direkter] Adressierung?
Die ‚indirekte Addressierung‘ erlaubt
die Verwendung von Variablen in der
Speicheradressierung und die sog.
Adressarithmetik. Kein sinnvolles
Programm kommt ohne so etwas aus.
Es ist doch ein Aufwand den InstructionPointer und das
CodeSegment zu Addieren um so die Adresse zu ermitteln,
warum hat man also beim 8085 nur direkte Adressierung
verwendet und beim 8086 auch eine indirekte?
‚Instruction Pointer‘? Kaum.
Vielleicht DS (data segment pointer)?
Ansonsten: Weil man beim 8085 noch nicht
so weit war, derart sinnvolle Dinge auch
nutzbar einzubauen. Daher war ja auch der
x86 so ‚revolutionär‘.
Der 8086 hatte in etwa folgende Addressierungsmodi:
=> Displacement Only Addressing Mode
=> Register Indirect Addressing Mode
=> Indexed Addressing Mode
=> Based Indexed Addressing Mode
=> Based Indexed Plus Displacement Addressing Mode
siehe dazu z.B. auch: http://www.dcc.unicamp.br/~celio/mc404s2-03/addr_mod…
Grüße
CMБ