5

Registers are called accordingly to their bit architecture: 16 bit: SP = Stack Pointer 32 bit: ESP = Extended Stack Pointer 64 bit: RSP = R? Stack Pointer

Does anybody know what the R stands for? I found an answer on stackoverflow suggesting that R stands for register, but there is no proof for that, it's just an guess by the user.

jcrosel
  • 349
  • 2
  • 5
  • 13
  • 3
    R = Reallyextended ? – Paul R Mar 10 '16 at 19:14
  • Another wild guess, I assume? Can you give a reference? – jcrosel Mar 10 '16 at 19:17
  • 6
    Since the 64-bit processor also has 8 general registers (R8-R15) I too suggest **R** stands for **register**. – Weather Vane Mar 10 '16 at 19:19
  • 6
    This has been discussed before here: http://programmers.stackexchange.com/questions/127668/what-does-the-r-in-x64-register-names-stand-for – FPK Mar 10 '16 at 19:20
  • Tip: `%SP` means (16-bit) Stack Pointer, `%ESP` means (32-bit) Stack Pointer, and `%RSP` means (64-bit) Stack Pointer. Remember that the x86 architecture goes way back to the 16-bit 8086 in 1978. – 3442 Mar 10 '16 at 20:34
  • I know it already has been discussed before @FPK, but nobody can give me a reference or proof for anything they asume. – jcrosel Mar 10 '16 at 20:54
  • Fun fact: [AMD considered renaming or aliasing the low 8 registers to `r0`-`r7`, or using `UAX` instead of `r8`, etc.](http://www.x86-64.org/pipermail/discuss/2000-September/000283.html). "Figuring out how to best name the registers was actually one of the hardest parts of doing the register extension." (See http://stackoverflow.com/a/35619528/224132 for some other neat x86-64 history.) I agree with the suggestions on that programmers.SE link that R stands for register, like on other ISAs. – Peter Cordes Mar 10 '16 at 21:59
  • 3
    `R` is next to `E` on the keyboard, so it's only natural. When they come out with 128b general purpose registers, I guess they'll call them TAX, TBX, etc.. – Leeor Mar 11 '16 at 08:56
  • Tongue-in-cheek. Started with 8008, so take 8, the "generator", then divide by 2 until you reach 1, then add 1 till you reach 5 (the "full hand") to get 8,4,2,1 then 2,3,4,5. Generator in first group is ignored, and evens in second group ignored (cuz this is an odd naming scheme). Pair eight numbers with the eight-ish 8008 registers: A/8,B/4,C/2,D/1,E/2,H/3,L/4,F/5 (for flags). Rearrange letters according to non-ignored numbers: DCHBF. Take ordinals: 4,3,8,2,6. Multiply each by 3: 12,9,24,6,18. Minus 1 if single digit: 12,8,24,5,18. Convert to letters: LHXER representing AL, AH, AX, EAX, RAX. – Χpẘ Mar 12 '16 at 05:38
  • See: http://stackoverflow.com/questions/10995349/what-does-the-r-stand-for-in-rax-rbx-rcx-rdx-rsi-rdi-rbp-rsp?rq=1 – user1354557 Jun 21 '16 at 17:28

1 Answers1

9

R in RSP stands for Rafał. Oh, you didn't mean my initials?

Seriously though, no information I've found gives any other name for the R then just Register. There are new registers like R8, R9 (which are traditional names for many other especially RISC architectures) and since R-prefixed registers were already added (like R8, R9) then it made sense to prefix other registers added at the same time with R as well. Also, those are the "normal" registers for that architecture so R makes sense.

But you're right, there doesn't seem to be any hard proof of that name, it's more like a legend, just like "iframe" supposedly meaning "Isaacs Frame" after the name of its creator.

rsp
  • 107,747
  • 29
  • 201
  • 177