title: Terminology: "registers" in assembly language programming
body: <p>I've heard the terminologies: register, hardware register, program register,register file.</p>
  
  <p>What's the difference between all these? And in assebmly, what is the type of the EAX register? Program register?</p>