Hacker News new | ask | show | jobs
by tenebrisalietum 926 days ago
8-bit CPUs have 8 data pins (D0-D7) and anything going in or out of the CPU is doing so 8 bits at a time. This includes all external accesses such as RAM, ROM, and I/O.

But 8-bit CPUs have more than 8 address lines, because 256 bytes total for combined RAM, ROM and I/O space is not useful. That number I think is typically 16 although Signetics 2650 had only 12 (with the instruction set only supporting 12-bit addresses), and the Atari 6507 (6502 derivative) had 13 (instruction set still supporting 16-bit addresses but the upper 3 bits of addresses were basically ignored).

> Is it just a matter of replacing all instructions/chips/buses to be 32 bit/lane?

Depends on the 8-bit CPU really.

- The Z80 lets you combine specific register pairs to work with 16 bits and address memory through them.

- The 6502 does not, but has the whole "zero page" thing where the first 256 bytes of RAM can contain 16-bit data and pointers.

- Both the Z80 and 6502 have a stack pointer register (the 6502's being 8-bit and fixed to point to RAM locations 512-767). But the 2650 had an internal 8-byte stack and stack pointer.

- The 8051 (and the 8048 I think) has lots of instructions for manipulating individual bits in registers and RAM, and also has a division between the memory that opcodes are fetched from versus data. None of the above work like that (the F8 might).

3 comments

I recall the Signetics 2650 as having 15-bit internal addressing with the 16th bit used for an indirect addressing mode. But yes, not all 15 bits being routed out to pins it had pretty limited memory potential.
The 6502's stack is hardwired to $0100-$01FF (256-511).
And much slower cf zero page. Hence we are told not to use stack as far as we can.
Wow. If anything, working around 8 bit's limitations seems to make 32 bit look simpler in comparison.