Commodore sayı 49, sayfa 48

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 48

$FB = 80 ve Y-registerinde de 5 olsun. Sonuçta vektörümüz $8001'i göstermektedir. Yukarıdaki şekliyle LDA komutunu bilgisayar yorumlarken $8001 değerine Y-registerinin değerini de ilave eder ve $8006 adresini akümülatöre yükler. Bu son öğrendiğimiz adresleme yöntemindeki tek sınırlama vektörün (parantez içindeki sayı) sıfırıncı sayfada olması gerektiğidir. Şu ana kadar öğrendiğimiz komutlardan ADC, CMP, LDA, SBC ve STA bu yöntemle adreslenebilirler. (Resim 2) Dolaylı-indeksli adresleme konusunu kapamadan önce yine bir örnek programı inceleyeceğiz. Bu program tüm ekran değerlerini ($0100'dan başlayan) $E000 adresine yazacaktır. Öncelikle sıfırıncı sayfada iki vektör belirleyelim: $FA/$FB ekran adreslerini ve $FC/$FD transfer edilecek adresleri ($E000 ve sonrası) göstersin. 1000 LDA #$00 1002 STA $FA 1004 STA $FC Bunlar iki vektörün alçak baytları idiler. Şimdi de yüksek baytlar: 1006 LDA #$04 1008 STA $FB 100A LDA #$E0 100C STA $FD Bu şekilde vektörler belirtilmiş oldu. Şimdi her biri 256 bayt olan 4 blok transfer edilmelidir. Blok sayısını X-registerine yazalım: 100E LDX #$04 100F ... Daha sonra Y-Registerine de sayacı (indeksi) yükleyelim: 1010 LDY #$00 Şimdi gerçek taşıma döngüsü başlayabilir: 1012 LDA (FA), Y 1014 STA (FC), Y 1016 DEY 1017 BNE $1012 Y-registeri ilk başta 0 değerine sahip olduğu için DEY komutuyla geri sayacaktır ve bu şekilde ilk blok taşınacaktır. İkinci blok için vektörlerin yüksek baytlarını arttıralım: 1019 INC $FB 101B INC $FD

Bye — LDA dolaylı X 2 AL 161 6 2 Bi 177 STA dolaylı X 2 Bı 129 6 - İz dolayıy 2 sı — dolayıx 2 61 87 6 NVZC nn ma ls NVZC — — 2" Et 226 6 dolayıy 2 Fİ NVZC CUP dolayıx — 2 — 188 6 NZC 6 NZC PHA — e me — ie ia PHP a 1 08 e. — G0 TSX a 1 BA 186 2 NZ TXS — 1 SA 154 2 -

Resim 2: Dolaylı olarak adreslenen komutlar

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