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