3 ms·
I must fight pedantry with pedantry! Historically it has been correctly nomered as a Program Counter, such as on the 6502 (https://en.m.wikipedia.org/wiki/MOS_
by crdotson 6y ago
I must fight pedantry with pedantry! Historically it has been correctly nomered as a Program Counter, such as on the 6502 (https://en.m.wikipedia.org/wiki/MOS_Technology_6502#Registers https://en.m.wikipedia.org/wiki/MOS_Technology_6502#Register...)
- souprock 6y agoPeople aren't just wrong on the internet. People were wrong before the internet existed. It's even possible to be smart enough to design a CPU and still be wrong. The register points at instructions. It does not count programs. The register is correctly named in some hardware manuals, including those for PowerPC and x86.
- loopz 6y agoProgram Counter = Counter used for programs. Counts bytes for position of next instruction. Within an early context and machine code vs hw level, not totally unreasonable as a legacy term. "Counter" was often used as name, even when starting at 0. Wrong before internet or just pioneers? And what wrongs do we now do, or not?
- souprock 6y agoIt sometimes seems to count, but then an interrupt happens or there is a backwards jump. That isn't counting. 42, 45, 47, 3, 4, 7, 37953, 37955, 37959, 11, 12, 15... Actual counting on real hardware does happen. For example, x86 has the CX/ECX/RCX register for string operations. That has a far better justification for being called a program counter, but still that would be awful terminology. Another example is the CTR register of PowerPC, commonly used with an instruction that decrements it and then conditionally branches to do a loop. Even a cycle counter has better justification for being called a program counter.
- loopz 6y agoYes, I let go of "counters" some two decades ago. Personally prefer index or just i, instead. The way it used to go. Call something counter. Increment it each loop. Use goto for looping. Over time, add more gotos and change "counter" value. It tends to creep in, and clear names are important.