C64 Türkiye sayı 3, sayfa 22

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 22

* : (Çarpı işareti) Program Counter’in o anki değeri.Bu komutla programın başlangıç adresini tanımlarsınız. Bu komutu isterseniz birden fazla kullanabilirsiniz. Daha iyi anlaşılması için aşağıdaki örneklere bakabilirsiniz. * = $0900 ; Programın başlangıç adresi olarak $0900 adresi tanımlanmıştır. * = 49152 ; “ “ “ “ 49152 “ “ JMP * ; Bu komutla bilgisayar sonsuz döngüye girer * = $1000 ; Programın başlangıç adresi $1000 (4096) LDA TABLO ; Komut .......................... ; Komut .......................... ; Komut * = $4000 ; Tablonun başlangıç adresi $4000 (16384) TABLO .BYTE 0,1,12,33 .byte 109,22,4,59 Aşağıdaki işlemler program yazarken sık sık kullanacağınız işlemlerdir. < ; İki baytlık bir değişkenin değerinin veya bir tablonun, yazının bulunduğu adresin veya program içindeki bir yerin alçak baytı. > ; Yukarıdaki açıklamanın yüksek baytı için olan şekli.

ÖRNEK 1: ÖRNEK 2: ÖRNEK 3: sei lda #<yazı lda #<tablo lda #<irq ldy #>yazı ldx #>tablo ldx #>irq jsr $ab1e sta store sta $0314 ........................ stx store+1 stx $0315 ........................ ......................... cli ........................ jmp * rts irq inc $d019 yazı .text “c64” tablo =$3800 lda $d012 .byte 0 store .byte 0, 0 ....................... ....................... ........................

Şimdi sırayla örnekleri açıklayalım: İlk örnekte “irq” etiketiyle başlayan program bölümünün adresinin “alçak” baytı “lda #<irq” komutuyla okunuyor ve “sta $0314” komutuyla ilgili adrese yazılıyor. Aynı şekilde “irq” ‘nın yüksek baytı için ldx ve stx komutları kullanılıyor. İkinci örnekte benzer bir şekilde “c64” yazısı için yapılıyor fakat bir “jsr” komutu için kullanılıyor. Son örnek biraz farklıdır. Bu sefer “tablo” ‘nun adresi değil, tablonun değeri olarak tanımlanan bir sayı A ve X registerleri tarafından LOW-HIGH bayt şeklinde okunup (A=$00 ve X=$38’dir) “store” nin olduğu adreslere kopyalanıyor. Program yazarken bu şekildeki yazım şekillerini sık sık kullanacaksınız. + ; Toplama işlemi - ; Çıkarma işlemi * ; Çarpma işlemi / ; Bölme işlemi ÖZEL KOMUTLAR : Bu bölümde assembler komutları olmayan bazı özel komutları açıklayacağım. .BYTE : (BYTE LİSTESİ) Bu komut ile program içinde kullanacağız değişkenler için gerekli değerleri tanımlayabilirsiniz.

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