Kategori:6502 İşlemci Komutları: Revizyonlar arasındaki fark

Retrojen Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
Wizofwor (mesaj | katkılar)
Wizofwor (mesaj | katkılar)
 
62. satır: 62. satır:
{| class="wikitable"
{| class="wikitable"
|-
|-
!OPCODE
!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.