In programming, processing data requires variables. You can simply think of registers as variables in assembly language. However, not all registers are treated as plain variables, but rather, each register has a designated purpose. The registers are categorized as being one of the following:
- General purpose registers
- Segment registers
- Flag registers
- Instruction pointers
In x86 architecture, each general purpose register has its designated purpose and is stored at WORD size, or 16 bits, as follows:
- Accumulator (AX)
- Counter (CX)
- Data (DX)
- Base (BX)
- Stack pointer (SP)
- Base pointer (BP)
- Source index (SI)
- Destination index (DI)
For registers AX, BX, CX, and DX, the least and most significant bytes can be accessed by smaller registers. ...