Program Döküm Eki sayı 15, sayfa 8

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 8

desimal bir sayıdır.

Örnek:

LDA $C000

$C000 adresli hafızanın içeriği aküye yüklenir.

ABX: absolut X-indeksli Operand dört basamaklı, hekzadesimal bir sayıdır. X-registerinin içeriği, operanda toplanır ve böylece aktif adres elde edilir. İşlem, bu adresle yürütülür.

Örnek:

LDX #$10

LDA $C000,X

$C010 ($C000 + $10) adresli hafızanın içeriği aküye yüklenir.

ABY: absolut Y-indeksli Operand dört basamaklı, hekzadesimal bir sayıdır. Y-registerinin içeriği, operanda toplanır ve böylece aktif adres elde edilir. İşlem, bu adresle yürütülür.

Örnek:

LDY #$10

LDA $C000,Y

$C010 ($C000 + $10) adresli hafızanın içeriği aküye yüklenir.

Byte: İlk iki tabloda kullanılan bu kısaltmanın anlamı, tüm bir komutun, operandlarıyla beraber uzunluğudur.

Flaglar: Durum registerinin her bir biti.

N: negative flag. Son yapılan işlemde, yedinci bitin yanık olup olmadığını gösterir.

Z: zero flag. Son yapılan işlemin sonucunun sıfır olup olmadığını gösterir.

C: carry flag. Son yapılan işlemdeki carry durumunu gösterir.

I: interrupt disable flag. Bu flag yanık olduğu zaman interrupt'lar engellenir.

D: decimal mode flag. Bu flag yakıldığında, ana işlem ünitesi, kısmen desimal (ondalık) modda işlem yapar. Örneğin: bu modda $01 ile $09'u toplarsak $0A değil $10 elde ederiz. Böylece ikili-onlu ve onlu-ikili dönüşümlerinden kurtuluruz.

V: overflow flag. Son yapılan işlemde taşıma (overflow) olup olmadığını gösterir.

IM: immediate Bu adresleme tipinde, operand bir byte uzunluğundadır ve bu operand doğrudan değeri ile kullanılır.

Örnek:

LDA #$00

$00 değeri doğrudan aküye yüklenir.

OP: operand Her adresleme tipinin gerektirdiği ve komutla beraber yürüyen komutun uzantıları.

ZP: zeropage (sıfırıncı sayfa) Adres, iki yerine bir byte'la gösterilir. Diğer byte olarak $00 kullanılır. Bu yöntemle, yalnızca hafızanın ilk 256 byte'ını adresleyebiliriz. ($0000'dan $00FF'e kadar)

Örnek:

LDA $2B

$002B adresli hafızanın içeriği aküye yüklenir.

ZPX: zeropage X-indeksli Adres için belirtilen byte'a X-registeri toplanır. Sonucun sadece sekiz biti kullanılır. Yukarıdaki şekilde onaltı bite genişletilir.

Örnek:

LDX #$30

LDA $F0,X

Yüklenen adres $0120 değil, $0020'dir. Bu adreslemenin sonunda sıfırıncı sayfanın dışına çıkamayız.

(ZP,X): indersli indirekt Operand byte' ile X-registeri toplanır. Sonuçta sıfırıncı sayfada, esas istediğimiz adresi belirten göstergecin adresini elde ederiz.

Örnek:

$20 adresli hafıza $00 içersin.

$21 adresli hafıza $CD içersin.

LDX #$0E

LDA ($12,X)

$0020 ($0012 + $000E) ve $0021 hafızaları $C000 adresini gösterir. Aküye, bu adresin içeriği yüklenir.

(ZP),Y: indirekt indeksli Operand byte'ı, sıfırıncı sayfada bir göstergecin sonrası oluşturur. Bu göstergece, Y-registerinin içeriği de toplanınca esas çalışma süresi elde edilir.

Örnek:

$20 adresli hafıza $00 içersin.

$21 adresli hafıza $C0 içersin.

LDY #$10

LDA ($20),Y

$C010 ($C000 + $0010) adresli hafızanın içeriği aküye yüklenir.

Takt: Komutun harcadığı zaman COMMODORE 64, aşağı yukarı 1 MHz civarında bir frekansla çalışır. Buna göre her bir takt bir mikrosaniye (saniyenin milyonda biri) sürer. Bu hesapla herhangi bir komutun ne kadar zaman süreceğini bulabiliriz.

Örnek:

RTS işlemi 6 mikrosaniye, LDA $00 işlemi de 2mikrosaniye sürer. Yani saniyede LDA $00 benzeri işlemlerden 500000 adet yürütülebilir.

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