An eight-bit microprocessor
designed by MOS Technology
around 1975 and made by Rockwell
Unlike the Intel 8080
and its kind, the 6502 had very few registers
. It was an 8-bit processor, with 16-bit address bus
. Inside was one 8-bit data register (accumulator
), two 8-bit index registers and an 8-bit stack pointer
(stack was preset from address 256 to 511). It used these index and stack registers effectively, with more addressing modes, including a fast zero-page mode that accessed memory locations from address 0 to 255 with an 8-bit address (it didn't have to fetch a second byte for the address).
Back when the 6502 was introduced, RAM
was actually faster than CPU
s, so it made sense to optimise for RAM access rather than increase the number of registers on a chip.
The 6502 was used in the BBC Microcomputer
, Apple II
, Apple Computer and Atari personal computers
. Steve Wozniak
described it as the first chip you could get for less than a hundred dollars (actually a quarter of the 6800
The 6502's indirect jump
instruction, JMP (xxxx), was broken
. If the address was hexadecimal xxFF, the processor would not access the address stored in xxFF and xxFF + 1, but rather xxFF and xx00. The 6510
did not fix this bug, nor was it fixed in any of the other NMOS versions of the 6502 such as the 8502. Bill Mensch at Western Design Center was probably the first to fix it, in the 65C02.
The 6502 also had undocumented instructions.
is an expanded version of the 6502.
There is a 6502 assembler
by Doug Jones which supports macros and conditional features and can be used for linkage editing of object files. It requires Pascal.
See also cross-assembler, RTI, Small-C.