Question

I am having problem understanding the following text,

8088 supports 1 Mbyte of external memory. This memory space is organized from a software point of view as individual bytes of data stored at consecutive address over the address range 00000 to FFFFF.

Now I don't get how the author converted from 1 Mbyte to FFFFF. Can anyone please help me out?

Thanks.

Was it helpful?

Solution

1 Megabyte is 2^20. That means that you need 20 bits to represent it. The range 00000-FFFFF holds all possible values of 20 bits.

OTHER TIPS

It is well explained in pages describing the 8086 (the 8088 has the same instruction set architecture, but with slightly different pins).

Basically a segment register gave a (16 bits) base address which was multiplied by 16, then an 16 bits offset was added.

And 0xfffff is 220-1, i.e. 1048575

Please diatinguish between CAPACITY and ADDRESSING. Capacity count start from 1, but in memory Addressing start from 0 ( address 0 is counted1).

An analogy. if we have capacity 10, and we address from 0, it would be from 0 to 9.

So the trick for addressing is Last Address = Capacity - 1.

For Capacity 1MB (dec) in Hex = 10.0000h And for addressing, last address is 10.0000 - 1 = F FFFF So addressiing for 1MB capacity is from 0 to F FFFF. (Remember address 0, is counted 1).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top