Alarm Siren wrote:
I believe some PICs and AVRs have as little as 32 bytes of "RAM" (actually no RAM at all, its all registers)
I'm not familiar with the AVRs; but the smallest PIC I've used, the 8-pin PIC12C673, had 128 bytes, mapped the same way as the special-functions registers (FSRs), 96 of those RAM bytes being in bank 0 and the rest in bank 1. You could have an instruction MOVF Foobar, W for example, to copy variable Foobar in RAM to the W (ie, working) register of the processor. W is like the 6502's accumulator, but these smaller PICs don't have index registers or any other processor registers that are directly workable by the programmer.
I have not looked at the 6-pin PIC10's but the smallest amount of RAM I'm aware of having been offered in a PIC is the 25 bytes of the PIC12C508 which works basically like the above. The '509 had 41 bytes. The 508's RAM was at addresses 07 to 1Fh in bank 0 (while addresses 00-06 were SFRs), and the 16 extra bytes on the '509 were at addresses 30h-3Fh in bank 1. Managing the RAM banking (and paging in program memory if you have to do that too) dramatically reduces efficiency; so you have to plan your usage judiciously.