Registers in Assembly Language Programming

To know use of registers in Assembly language programming, take a program example.

ORG 100h
MOV AX, 0B800h
MOV DS, AX
MOV CL, ‘A’
MOV CH, 1101_1111b
MOV BX, 15Eh
MOV [BX], CX
RET

What is h and b in this program ?

Number system :
Binary number (b) : 0,1
Hexadecimal number (h) : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

What are AX, BX, etc. in this program ?

General Purpose Registers:

AX – Accumulator register | Divided in to AH and AL
BX – Base address register | Divided in to BH and BL
CX – Count register | Divided in to CH and CL
DX – Data register | Divided in to DH and DL

Segment Registers:

CS – Indicate the segment which contains current program
DS – Indicate the segment where variables are define
ES – Extra segment registers
SS – Indicate the segment containing stack.

Special Registers:

IP – Instruction pointer
Flag register – It determines the current status of microprocessor.

Example to understand use of AH and AL registers

Size of AX register is 16 bit.
That means,
AH = 8 bit
AL = 8 bit
AX = 0011000000011110b
AH = 00110000
AL = 00011110b