Kategori:6502 İşlemci Komutları: Revizyonlar arasındaki fark
62. satır: | 62. satır: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | !KOMUT | ||
!İŞLEV | |||
!HEX | !HEX | ||
|- | |- | ||
78. satır: | 79. satır: | ||
|} | |} | ||
Karşılaştırma komutları ilgili yazmacın değerini bellekteki değerle karşılaştırır ve duruma göre N,Z,C bayraklarını değiştirir. | Karşılaştırma komutları ilgili yazmacın değerini bellekteki değerle karşılaştırır ve duruma göre N,Z,C bayraklarını değiştirir. CMP komutunu aslında SBC ile aynı şekilde bellek değerini akümülatörden çıkartır ancak sonucu kaydetmez. Sadece bayrakları düzenler. Karışlaştırma komutlarından sonra koşullu dallanma komutu çalıştırılır. | ||
{|- class="wikitable" | {|- class="wikitable" | ||
|- | |- | ||
101. satır: | 103. satır: | ||
|1 | |1 | ||
|} | |} | ||
*N (Negative) bayrağı yazmaç - belleğin 7'nci bitini gösterir. | |||
===Koşullu dallanma komutları=== | ===Koşullu dallanma komutları=== |
15.10, 2 Aralık 2015 itibarı ile sayfanın şu anki hâli
Yazmaçlar
- PC - Program sayacı
- programın işlenmesi sırasında bir sonraki komutun okunacağı adresi gösterir.
- AC - Akümülatör
- aritmetik ve mantıksal işlemlerde kullanılacak değerleri ve işlemden sonra sonuçları saklar.
- X yazmacı
- Aritmetik ve mantıksal işlemlerde ara değerleri saklamak için kullanılır. Aynı zamanda indeksli adreslemede indexi belirtir kullanılır.
- Y yazmacı
- Bir iki ufak fark dışında X ile aynıdır.
- SR - durum yazmacı/status register
- Son gerçekleştirilen işleme ait bilgi verir. Durum yazmacının her biti ayrı bir durum belirtir. Bunlara bayrak denir. Koşullu dallanma ve karşılaştırma komutları bu bayrakların değerine bakarak çalışırlar. Bayraklar sırayla 'NV-BDIZC' olarak anılır.
- C: Elde (Carry)
- Z: Sıfır (Zero)
- I: Kesme (IRQ disable)
- D: Ondalık Mod (Decimal Mod)
- B: Kesme (Break)
- Rezerve
- V: Taşma (Overflow)
- N: Negatif
Adresleme Modları
6502 13 farklı adresleme modu destekler.
Adresleme Modu | Kullanım | |
---|---|---|
1. | Implicit (Implied)* | RTS |
2. | Accumulator | ASL A |
3. | Immediate* | LDA #2 |
4. | Absolute | LDA $5000 |
5. | Zero Page* | STA $CB |
6. | Relative | BCC LABEL |
7. | Absolute Indexed, X | LDA $5000,X |
8. | Absolute Indexed, Y | LDA $5000,Y |
9. | Zero Page, X | LDA $CB,X |
10. | Zero Page, Y | STX $CB,Y |
11. | Indexed Indirect | LDA ($B0,X) |
12. | Indirect Indexed | LDA ($B0),Y |
13. | Indirect | JMP ($5000) |
Komutlar
Mantıksal ve Aritmetik Komutlar
ORA, AND, EOR, ADC, SBC, CMP, CPX, CPY, DEC, DEX, DEY, INC, INX, INY, ASL, ROL, LSR, ROR
Kopyalama Komutları
LDA, STA, LDX, LDY, STX, STY, TAX, TXA, TAY, TYA, TSX, TXS, PLA, PHA, PLP, PHP
Karşılaştırma komutları
KOMUT | İŞLEV | HEX |
---|---|---|
CMP | Bellek ve Akümülatörü karşılaştır | |
CPX | Bellek ve X'i karşılaştır | |
CPY | Bellek ve Y'yi karşılaştır |
Karşılaştırma komutları ilgili yazmacın değerini bellekteki değerle karşılaştırır ve duruma göre N,Z,C bayraklarını değiştirir. CMP komutunu aslında SBC ile aynı şekilde bellek değerini akümülatörden çıkartır ancak sonucu kaydetmez. Sadece bayrakları düzenler. Karışlaştırma komutlarından sonra koşullu dallanma komutu çalıştırılır.
Durum | N | Z | C |
---|---|---|---|
Yazmaç < Bellek | * | 0 | 0 |
Yazmaç = Bellek | 0 | 1 | 1 |
Yazmaç > Bellek | * | 0 | 1 |
- N (Negative) bayrağı yazmaç - belleğin 7'nci bitini gösterir.
Koşullu dallanma komutları
KOMUT | İŞLEV | HEX |
---|---|---|
BPL (Branch on PLus) | $10 | |
BMI (Branch on MInus) | $30 | |
BVC (Branch on oVerflow Clear) | $50 | |
BVS (Branch on oVerflow Set) | $70 | |
BCC (Branch on Carry Clear) | $90 | |
BCS (Branch on Carry Set) | $B0 | |
BNE (Branch on Not Equal) | $D0 | |
BEQ (Branch on EQual) | $F0 |
Koşulsuz dallanma komutları
BRK, RTI, JSR, RTS, JMP, BIT, CLC, SEC, CLD, SED, CLI, SEI, CLV, NOP
İllegal Opkodlar
SLO, RLA, SRE, RRA, SAX, LAX, DCP, ISC, ANC, ALR, ARR, XAA, AXS, SBC, AHX, SHY, SHX, TAS, LAS
Şu anda bu kategoride herhangi bir sayfa ya da ortam dosyası bulunmuyor.