Search code examples
assemblyx86-16real-modememory-segmentation

How to make 20 bit address by using two 16 bit registers?


IAPX88 can deal with 1 mega byte memory(20 bit addressing), now my question is how we make a 20 bit address by using two 16 bit registers.please give an example.


Solution

  • IAPX88 physical addresses are computed by taking the segment register, shifting it to the left 4 bits, and adding the offset register.

    For example, the physical address in memory that code executes is (CS<<4)+IP where CS is the Code Segment and IP is the Instruction Pointer.

    You can get details on the Intel 8086 wikipedia page.