register organisation of a 8086 micro processor
SPECIAL FUNCTIONS OF GENERAL
PURPOSE REGISTERS
Accumulator register consists of 2 8-bit
registers AL
and AH, which can be combined together and used as a 16-bit register AX. AL in this case contains
the low-order byte of the word, and AH contains the high-order byte.
Accumulator can be used for I/O operations and string manipulation.
Base
register consists of 2 8-bit registers BL and BH, which can be combined
together and used as a 16-bit register BX. BL in this case contains the
low-order byte of the word, and BH
contains the
high-order byte. BX register usually contains a data pointer used for based,
based indexed or register indirect addressing.
Count register consists of 2 8-bit
registers CL and CH, which can be combined together and used as a 16-bit
register CX. When combined, CL register contains the low-order byte of the
word, and CH contains the high-order byte. Count register can be used as a
counter in string manipulation and shift/rotate instructions.
Data register consists of 2 8-bit
registers DL and DH, which can be combined together and used as a 16-bit
register DX. When combined, DL register contains the low-order byte of the
word, and DH contains the high-order byte. Data register can be used as a port
number in I/O operations. In integer 32-bit multiply and divide instruction the
DX register contains high-order word of the initial or resulting number.
SPECIAL FUNCTIONS OF SPECIAL
PURPOSE REGISTERS
Stack Pointer (SP) is a 16-bit register
pointing to program stack.
Base Pointer (BP) is a 16-bit register
pointing to data in stack segment. BP register is usually used for based, based
indexed or register indirect addressing.
Source Index (SI) is a 16-bit register. SI is
used for indexed, based indexed and register indirect addressing, as well as a
source data address in string manipulation instructions.
Destination Index (DI) is a 16-bit register. DI is
used for indexed, based indexed and register indirect addressing, as well as a
destination data address in string manipulation instructions.
The si
and di registers (Source Index and Destination Index ) have some special
purposes as well. You may use these registers as pointers (much like the bx
register) to indirectly access memory. You'll also use these registers with the
8086 string instructions when processing character strings.
The bp
register (Base Pointer) is similar to the bx register. You'll generally use
this register to access parameters and local variables in a procedure.
The sp
register (Stack Pointer) has a very special purpose - it maintains the program
stack. Normally, you would not use this register for arithmetic
computations. The proper operation of most programs depends upon the careful
use of this register.
segment registers:
Stack segment (SS) is a 16-bit register
containing address of 64KB segment with program stack. By default, the
processor assumes that all data referenced by the stack pointer (SP) and base
pointer (BP) registers is located in the stack segment. SS register can be
changed directly using POP instruction.
Data segment (DS) is a 16-bit register
containing address of 64KB segment with program data. By default, the processor
assumes that all data referenced by general registers (AX, BX, CX, DX) and
index register (SI, DI) is located in the data segment. DS register can be
changed directly using POP and LDS instructions.
Extra segment (ES) is a 16-bit register
containing address of 64KB segment, usually with program data. By default, the
processor assumes that the DI register references the ES segment in string
manipulation instructions. ES register can be changed directly using POP and
LES instructions.
It
is possible to change default segments used by general and index registers by
prefixing instructions with a CS, SS, DS or ES prefix
No comments:
Post a Comment