Indirect deyince 65c02'deki JMP($falan,X) geldi aklıma nedense... Commodore LCD'nin içinde, PHY PHX vb. ile birlikte bolca kullanmışlar.
Nispet yapmışlar diyosun yani

Bu arada yeni farkettim. Benim kafa hep X register'ı ile kullanılan Indexed Indirect'e gitmiş, başlıkta Indirect Indexed yazıyormuş.
Bu arada bunların terminolojik olarak karışmaması için ilk kelimeye bakmak lazım. İlk kelime adreslemenin temel işlevini, ikincisi ise yan fonksiyonu söylüyor.
Indirect Indexed : Bunun indeksli olması yan özelliği. Önemli olan Indirect olması, yani operand olarak verilen adres doğrudan kullanılmıyor. O adres ve O adresten sonraki adres 16 bit bir adres oluşturmak için kullanılıyor. Indeksli olması dediğim gibi yan özellik. Oluşan adrese Y register'ının değeri eklenip işlem yapılacak adresin son değeri bulunuyor.
Indexed Indirect : Bunun da ilk ve temel özelliği operand olarak verilen zero page adresinin X register'ı ile indekslenebilmesi. Indirect niteliği ikinci aşamada 16 bit adresin kullanılması aşaması.
Yani ilk kelimede Indirect görünce aklınıza Y, Indexed görünce de X getirirseniz karışmıyor. Zaten çoğu programcı sadece indeksleme ihtiyacı varsa çoğu zaman doğrudan indeksleme için X register'ını kullanır.
Hatta 6502'nin ortagonal olmayan garip bir özelliği zero page'de doğrudan indisleme için sadece X register'ını kullanabilmesi. Instruction set epey garip.
LDA (LoaD Accumulator)
MODE SYNTAX HEX LEN TIM
Zero Page,X LDA $44,X $B5 2 4
Absolute,X LDA $4400,X $BD 3 4+
Absolute,Y LDA $4400,Y $B9 3 4+
Indirect,X LDA ($44,X) $A1 2 6
Indirect,Y LDA ($44),Y $B1 2 5+
LDX (LoaD X register)
MODE SYNTAX HEX LEN TIM
Zero Page,Y LDX $44,Y $B6 2 4
Absolute,Y LDX $4400,Y $BE 3 4+
LDY (LoaD Y register)
MODE SYNTAX HEX LEN TIM
Zero Page,X LDY $44,X $B4 2 4
Absolute,X LDY $4400,X $BC 3 4+