3 ms·
I grew up on 8088 and then 6502 and 8086 assembly. The 8086 had more registers and more useful variations of registers. However, it emotionally felt like after
by jmount 1y ago
I grew up on 8088 and then 6502 and 8086 assembly. The 8086 had more registers and more useful variations of registers. However, it emotionally felt like after eliminating the accumulator and stack pointer: the 6502 had general purpose registers (though only 2 of them!) and that the 8086 did not have any general purpose registers. Even though there were more 8086 registers, each one had a different "purpose": base register, counter, data, base pointer, source index, destination index. These specializations never felt like a hardware optimization, but a series of horrific programming constraints.
- RiverCrochet 1y agoIt is often said the 6502 has 256 registers - being all the bytes in zero page (assuming 256 bytes in zero page exist, the Atari just had 128). It's a fair leap - all of the "indirect" instructions that do access-through-pointer stuff are zero page and would be register-oriented in most other architectures. Plus loading and storing stuff to zero page consumes the same cycles as a register (2), zero page is not slower than registers generally. You want something really icky try to make sense of Fairchild F8 with it's 64 internal bytes of "scratchpad" RAM which are kinda halfway between registers and RAM due to the weirdness of the F8 architecture.