Converting from 1Mbyte to Hex
-
31-05-2021 - |
Question
I am having problem understanding the following text,
8088
supports1
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 range00000
toFFFFF
.
Now I don't get how the author converted from 1 Mbyte to FFFFF. Can anyone please help me out?
Thanks.
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).