Saw a blog post titled "How many registers does an x86-64 CPU have?" and my immediate thought was "it's impossible to know and a sin to ask".
-
@bitchboss @dascandy @ryanc yup, you even get them for the extended GPRs in x64
-
Saw a blog post titled "How many registers does an x86-64 CPU have?" and my immediate thought was "it's impossible to know and a sin to ask".
If you think the answer is 16, by the way, no it is not.
@ryanc please help me and support me
#freepalestine -
@ryanc Even for a Z80 it's not a trivial answer. (Yes I do know someone who wrote some code that used the R register.)
@TimWardCam @ryanc, let's see… from what I remember:
8-bit registers (treatable as 16-bit pairs): A, F, B, C, D, E, H, L.
16-bit registers (treatable as 8-bit halves): IX, IY.
8-bit registers: I, R.
16-bit registers: AF', BC', DE', HL', SP, PC.18 registers in total. I'm specifically not counting different views as distinct registers: AF is counted as A and F, but IXH and IXL are counted as IX.
Yes, some aspects of this are… somewhat arbitrary. I could count BC, DE and HL as three rather than six and it wouldn't be wrong. I could count AF that way too – and it probably does match the other pairs in terms of the actual hardware design (and it could reasonably be called FA as, looking at the opcode patterns, it makes sense for A to be the lower 8 bits).
Now. Have I missed anything…?
-
@TimWardCam @ryanc, let's see… from what I remember:
8-bit registers (treatable as 16-bit pairs): A, F, B, C, D, E, H, L.
16-bit registers (treatable as 8-bit halves): IX, IY.
8-bit registers: I, R.
16-bit registers: AF', BC', DE', HL', SP, PC.18 registers in total. I'm specifically not counting different views as distinct registers: AF is counted as A and F, but IXH and IXL are counted as IX.
Yes, some aspects of this are… somewhat arbitrary. I could count BC, DE and HL as three rather than six and it wouldn't be wrong. I could count AF that way too – and it probably does match the other pairs in terms of the actual hardware design (and it could reasonably be called FA as, looking at the opcode patterns, it makes sense for A to be the lower 8 bits).
Now. Have I missed anything…?
@lp0_on_fire @ryanc Most people never come across R. I knew someone who bult a Rugby clock with no RAM, using just the registers as memory, and to find enough space they needed to use the top few bits of the R register (the bottom few bits cycled too fast to be useful).
-
@bitchboss @dascandy @ryanc yup, you even get them for the extended GPRs in x64
@bitchboss @ryanc @gsuberland we even got low ones for di, si, bp and sp... which means you cannot mov ah, bpl...
-
@nspace
Ooh, links?
@gsuberland @ryanc -
Saw a blog post titled "How many registers does an x86-64 CPU have?" and my immediate thought was "it's impossible to know and a sin to ask".
If you think the answer is 16, by the way, no it is not.
@ryanc Is that how many can be addressed by each instruction or how many exist in the hardware?
-
@ryanc Is that how many can be addressed by each instruction or how many exist in the hardware?
@GerardThornley how many exist in the hardware
-
@ryanc yeah uhhh off the top of my head
rax, rbx, rcx, rdx, r8-r15, rdi, rsi, rsp, rbp, rip and all the components thereof, and rflags
zmm0-zmm??? (can't remember how many we have now) plus the ymm/xmm components.
6 ye olde segment registers.
gdtr, ldtr, idtr, and another I forgot the name of.
maybe 5 control registers? they're numbered to 15 but most are reserved
8 debug registers
x87 FPU and MMX weirdness
hundreds of MSRs, hundreds more if you count CPUID leaves
plus internal regs
@gsuberland @ryanc
Also known as a "bakers 16" -
@GerardThornley how many exist in the hardware
@ryanc tbh, I wouldn't be able to guess either way, as I've rarely done low-level stuff on intel chips. But I'll be interested to know the answer. Good thread.
-
-
Saw a blog post titled "How many registers does an x86-64 CPU have?" and my immediate thought was "it's impossible to know and a sin to ask".
If you think the answer is 16, by the way, no it is not.
@ryanc I heard there are five bonus registers that only get unlocked when you're using all the normal registers
-
Saw a blog post titled "How many registers does an x86-64 CPU have?" and my immediate thought was "it's impossible to know and a sin to ask".
If you think the answer is 16, by the way, no it is not.
African or European Registers?

️
