64'ler sayı 15, sayfa 25

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 25

yazmalıyız. İşte ekrandaki X'inci karakteri yükleme programı: C000 LDX #$09 C002 LDA $0400,X C004 RTS Eğer X'in değerini değiştirirsen A register'i başka bir karakterle yüklenmiş olacaktır. X register'i yukarıdaki metodla da yüklenebilir, fakat Y registerini index olarak kullanmalıdır. INDEXED İNDİRECT ADDRESSING: Sadece A register'i bu adreslemeyi kullanabilir. Daha ileriye 'LOW byte' ve 'HI byte'ın ne anlama geldiğini anlamamız gerekiyor. LOW byte adresin ilk 2 digit'idir. Örnek olarak FEA9 adresinde A9 LOW byte'dır. 764F adresinde ise LOW byte 4F'dir. HI byte adresin ikinci digit'idir. FEA9 adresinde FE HI byte'dır, keza 764F adresinde 76 HI byte'dır. Indexed İndirect Addressing formu şudur: “LDA ($40,X)”. Kompüter bunu gördüğü zaman X'in değerini parantez içindeki sayıya ilave eder. Örnek X=10. Parantezin içi 50 olacaktır. 50 bölgesinin D2'ye eşit olduğunu kabul edelim. Kompüter HI byte'ı 51 bölgesinden alacaktır. (51 bölgesinde FF olduğunu kabul edelim) Kompüter şimdi HI ve LOW byte'lara sahip, böylelikle adres oluşmuştur. Adres FFD2 olacaktır, LOW byte D2 ve HI byte FF'dir. Şimdi A register'i FFD2 bölgesindeki değere sahip olacaktır. Bu komutu kompüterde kullanmadan önce ikinci bir örnek vereceğim. Bu örnekte A bölgesi=43 ve 31 bölgesi de FE'ye eşittir. Bu örnekteki komut 'LDA ($20,X)' olacaktır. 30 bölgesinin LOW byte değeri 43 olacaktır. 31 bölgesinin HI byte değeri ise FE olacaktır, böylece A register'i FE43 bölgesindeki değere sahip olacaktır: C000 LDX #$0B C002 LDA ($20,X) C004 RTS Programı RUN ettiğin zaman A register'inin değeri 0B olacak. Bütün izah etmek istediğim: 2B bölgesi=01, 2C bölgesi=08, ve 0801 bölgesi 0B'ye eşittir. INDİRECT İNDEXED ADDRESSING: Diğerlerinde olduğu gibi bu da sadece A registerinde kullanılabilir. Kullanımda örnek: 'LDA ($78),Y'. Kompüter LOW byte'ı 78 bölgesinden, HI byte'ı 79 bölgesinden alır. Adres oluştuktan sonra Y registerindeki değeri adrese ekler. Eğer 78 bölgesi=56'ya, 79 bölgesi=98'e ve Y register'i de 03'e eşitse şunlar vuku bulur. 78 bölgesinin LOW byte'ı 56, HI byte (79 bölgesi) 98 olacaktır. Adres 9856 olur, fakat bu son adres değildir. Kompüter Y registerinin değerini de toplayarak final adres olarak 9859 olacaktır. 9856+03(Y registeri)=9859. A registeri 9859 adresindeki değerle yüklenecektir. İşte örnek program:

Klavyeyle gezinmek için ← ve → tuşları.