Programming
Model of 8086

 

Data
Registers:

Best services for writing your paper according to Trustpilot

Premium Partner
From $18.00 per page
4,8 / 5
4,80
Writers Experience
4,80
Delivery
4,90
Support
4,70
Price
Recommended Service
From $13.90 per page
4,6 / 5
4,70
Writers Experience
4,70
Delivery
4,60
Support
4,60
Price
From $20.00 per page
4,5 / 5
4,80
Writers Experience
4,50
Delivery
4,40
Support
4,10
Price
* All Partners were chosen among 50+ writing services by our Customer Satisfaction Team

          15                           8              7                              0

AX

BX

CX

DX

               

AH

AL

BH

BL

CH

CL

Dh

DL

     

 

·        
Four 16-bit general purpose registers
used to store operands and results.

·        
Each can be accessed as a whole (AX,
BX, CX & DX)
or the upper and lower bytes can be accessed separately (AL, AH, BL, CL, CH, DL
& DH).

·        
AX is an implied operand for some
arithmetic operations.

·        
BX may be used as a base register in address
calculations.

·        
CX is an implied counter for certain
instructions.

·        
DX is sometimes used to hold the address
of I/O instructions.

 

 

Segment
Registers:

            15                                            0

                  CS

                  SS

                  DS 

                  ES  

 

·        
Used
to calculate physical memory addresses.

·        
CS
(Code Segment) is used in combination with IP to access the executing program
instructions.

·        
SS
(Stack Segment) is used in combination with SP to access the executing program
Stack.

·        
DS
(Data Segment) and ES (Extra Segment) are used to access the executing program
data.

Physical
Address.

 

 

·        
The
Segment, Pointer and other addressing registers are only 16 bits wide. On the
other hand, the address put on the bus by the 8086 (called Physical Address) is
20-bits. So, where do the missing 4-bits come from?

 

 

         
16bit

Effective Address or Offset

                                                                   +

          
16bit

Segment Address 

                                                       =

                   20bits

Physical Address          

 

 

Example:
(CS) = 123A, (IP) = 341B

Therefore,
next instruction fetched at:

 

   341B
Offset

+
123A0 Segment Address

=
157BB
Physical Address