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.

有帮助吗?

解决方案

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.

其他提示

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).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top