Bu sayfadaki yazılar
Sayfanın metni
Sayfa 9
Digitizer Yazısına Ait Program:
Speech Basic
Klavyeyle gezinmek için ← ve → tuşları.
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.