6502Arch
+ + +
+
+
+Table of Contents
+ +
+
+
+1 Addressing modes
+
+
+
+
+
++has a 16-byte address bus. +
+ + +
+
+
+1.1 Absolute
+
+
+
+
+
+-
+
- Full memory location specified, i.e. $c000 + +
- 65536 bytes of addressable memory (216 duyyy) + +
+
+
+1.2 Zero-page
+
+
+
+
+
+-
+
- 1 byte adress, i.e. $c0, 256 bytes adressable + +
- faster, takes less program space + +
+
+
+1.3 Zero-page, X
+
+
+
+
+
+-
+
- Relative adressing within the zero page. + +
- Adds the value in reg. x with a 1-byte adress + +
- i.e. STA $a0, X + +
- Address wraps around if the addition is larger than 1 byte + +
+
+
+1.4 Zero-page, Y
+
+
+
+
+
+-
+
- equiv to zero-page, X but can only be used with LDX and STX + +
+
+
+1.5 Immediate
+
+
+
+
+
+-
+
- i.e. #$c0 + +
- loads immedate number into register + +
+
+
+1.6 Relative
+
+
+
+
+
+-
+
- i.e. $c0, or label + +
+
+
+1.7 Implicit
+
+
+
+
+
+-
+
- when operation doesn't deal with memory + +
+
+
+1.8 Indirect
+
+
+
+
+
+-
+
- Uses absolute address to get another address + +
- first address is LSB of address, following byte is MSB + +
+
+
+1.9 Indexed Indirect
+
+
+
+
+
+-
+
- i.e. LDA ($c0, X) + +
- Take a zero page adress and add the value in reg. x to it, look up 2 byte address + +
+
+
+1.10 Indirect Indexed
+
+
+
+
+-
+
- zero page address dereferenced then Y is added to it + +
+
+
+2 Stack
+
+
+
+
+
+-
+
- lives in memory between $0100 and $01ff + +
+
+3 Jumping
+
+
+
+
+-
+
- JSR/RTS: Jump to subroutine and return from subroutine + +