title: MDR, MAR Registers, in Relation to Assembly Language
body: <p>I have been reading up on assembly programming and computer architecture over the last few weeks, but I am left with a couple of questions that I cannot seem to find the answer to.</p>
  
  <p>When reading about CPU builds etc., you learn about the MAR and MDR registers, and how they control the flow of data between memory and the CPU.</p>
  
  <p>Separately, in assembly language (referring to IA-32 here), we learn that the x86 architecture has 8 General-Purpose Registers (EAX, ESP, EDI, etc.), 6 Segment Registers and 2 Control Registers (1 Flags Register and an Instruction Pointer). That is 16 registers in total.</p>
  
  <p>None of the registers mentioned in assembly language guides mention the MDR and the MAR.</p>
  
  <p>The questions are as follows:</p>
  
  <p><strong>How does the MAR / MDR fit into the assembly language list of registers?</strong></p>
  
  <p><strong>Does the x86 in fact have more than 16 registers?</strong></p>
  
  <p><strong>How many registers does ARM / MIPS have?</strong></p>
  
  <p>Thank you very much in advance.</p>