title: Why are rbp and rsp called general purpose registers?
body: <p>According to Intel in x64 the following registers are called general purpose registers (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP and R8-R15) <a href="https://software.intel.com/en-us/articles/introduction-to-x64-assembly" rel="noreferrer">https://software.intel.com/en-us/articles/introduction-to-x64-assembly</a>.</p>
  
  <p>In the following article, it's written that RBP and RSP are special purpose registers (RBP point to the base of the current stack frame and RSP point to the top of the current stack frame).
  <a href="https://www.recurse.com/blog/7-understanding-c-by-learning-assembly" rel="noreferrer">https://www.recurse.com/blog/7-understanding-c-by-learning-assembly</a></p>
  
  <p>Now I have two contradictory statements. The Intel statement should be the trusted one, but what is correct and why is RBP and RSP called general purpose at all ? </p>
  
  <p>Thanks for any help.</p>