64'ler sayı 20, sayfa 44

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 44

2) KES ";BY$ Bi< (Z19R)THEN Bİ$-Bİ$4*"

SHIFTING (KAYDIRMA) VE ROTATION (DONDURME) Bu ve bunu takip eden bölümler binary sayı bilne dayanmaktadır. Yukarıdaki satırlar ile assembregisterdeki değerleri binary rakamlara çevirektir. Assembler programını yükle (Load) ve aşağıdakileri gir: Bu satırları yazdıktan sonra assember programını yeniden kaydet (Save) ASL (A registerini sola kaydır) ASL sola bir bit kaydırmayı sağlar. İşte diagram: Carı z o o Bu komutu kullandığın zaman O, O bite'e girer, © bit 1 bit'e, 1. bit 2. bit'e böylece 7. bit Carry flag'a girene kadar devam eder. Aşağıdaki örnek ASL komutu kullanılmadan önceki ve sonraki değeri gösterir: Rotation'dan önce: Carry flag —- O, döndürülecek memory — 1 0110 Rotation'dan sonra: Carry flag - 1, memory — 00101100 Burada 7. bit'teki 1 Carry flag'a aktarıldı. Aşağıdaki programda A registerini 81 10000001) den 2 (00000010) ye ve Carry flag set durumuna geçer: Coco LDA

co03 — RTS Co04 LDY #$03 Coo7 RTS

Yukarıdaki program Carry flag'ı 1'e set eder, Ü 7. bit (1 vardı) Carry flag'a shift edilmiştir. Bundan sonraki program memory bölgesini shift X değeri shift'ten önceki değerine sahiptir, ve teri shift'ten sonraki değerlere sahip olur: Cooo LDX & $AE Co02 STX $ FE ASL $ FE

CO06 LDY $ FE Cco08 RTS LSR (Logical Shift Right) (Sağa Lojik Shift) ASL'nin tam tersini yapar. Memory'yi bir bit sağa shift eder:

m n byte sağa 1 bit shift edilir. O, 0.cı bite, O.bit 1. bit'e ve en son 7. bit Carry flag'a geçer. İşte A registerini A7 (10100111) değerinde 53 (01010011) değerine shift ettiren program: Co00 LDA Co02 LSR

ASL aşağıdaki adreslemelerin hepsini sağlar: ACCUMULATOR (A REGISTER) ADDRESSING (ASL, LSR) ZERO PAGE ADDRESSING (LSR $ZZ, ASL $ZZ) ZERO PAGE INDEXED ADDRESSING (LSR $ZZ,X, ASL $ZZ,X) ABSOLUTE ADDRESSING (LSR $ZZZZ, ASL $ZZZZ) ABSOLUTE INDEXED ADDRESSING (LSR $ZZZZ,X, ASL $ZZZZ,X) ROL (Rotate One bit Left) (Sola bir bit rotate ROL aslında ASL gibidir, yalnız 0. bit'e 0 gireceğine Carry flag oraya shift edilir. 7 0 9 gösterildiği gibi Carry flag 0. bite geçer ve diğerleri de birer sola kayar. İşte A register'ın $81 (10000001) den $03 (00000011) değerine shift ettiren örnek program. Carry flag'ın rotation'dan önce set olduğuna dikkat et C=0 LDA #$81

SEC RO: RTS

A registeri sonucunda 3 değerini alır. cünk

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