Intel 8086 is the first in the long line of Intel's x86 chips. Released in 1978.
AX - Primary accumulator - 16-bit, made up of 2 8-bit registers AH and AL (which will update with AX and vice versa), arithmetic and logical instructions
BX - Base register - 16-bit, made up of BH and BL (same details as AX), stores offsets for memory addressing
CX - Loop counter - 16-bit, made up of CH and CL (same details as AX),
DX - Data register - 16-bit, made up of DH and DL (same details as AX), I/O and extended arithmetic
SI - Source Index - 16-bit
DI - Destination Index - 16-bit
BP - Base Pointer - 16-bit
SP - Stack Pointer - 16-bit
IP - Instruction Pointer - 16-bit
CS - Code Segment - 16-bit
DS - Data Segment - 16-bit
ES - Extra Segment - 16-bit
SS - Stack Segment - 16-bit
Flags register (left to right):
N/A
N/A
N/A
N/A
Overflow Flag
Direction Flag
Interrupt flag
Trap Flag
Sign flag
Zero flag
N/A
Auxiliary carry flag
N/A
Parity flag
N/A
Carry flag
For bytes that use the "addressing mode, register to update, register to get position from" (or, as called in source [3], "mod reg r/m") format:
Addressing mode codes:
00 - no displacement
01 - signed 8-bit displacement
10 - unsigned 16-bit displacement
11 - register to register (not allowed for LES)
Register to update codes:
000 - AX
001 - CX
010 - DX
011 - BX
100 - SP
101 - BP
110 - SI
111 - DI
Register access codes:
000 - BX + SI
001 - BX + DI
010 - BP + SI
011 - BP + DI
100 - SI
101 - DI
110 - BP (unless mode is 00, then the only operand is the 16-bit address given after this byte)
111 - BX