0
\$\begingroup\$

In the book it is given that:

"to identify the I/O devices these devices can be interfaced using address from memory space: MEMORY-MAPPED I/O. Another option is to have a separate numbering (addressing) scheme for I/O devices. The 8085 has separate 8-bit addressing scheme: PERIPHERAL-MAPPED I/O."

When the 8085 microprocessor has fixed 64kB of memory which it uses for addressing the different memory locations then how it can share that memory with the I/O address (i.e., for any external peripheral) in memory mapped and how can it use "separate 8-bit addressing scheme" when it has fixed memory in it.

I am unable to understand this. If anyone knows this please explain this in detail or tell me where it is explained in detail.

\$\endgroup\$
  • \$\begingroup\$ It is relatively easy to support multiple address spaces. A processor puts out a signal which identifies the address space it is using for that external address/data access. The other signals, such as address and data, can be reused. \$\endgroup\$ – gbulmer Sep 19 '14 at 6:25
  • \$\begingroup\$ To further gbulmer's comment, the program does different things addressing memory vs. I/O. I don't remember the 8085 specifically, but I believe there are different instructions for memory access and I/O access. \$\endgroup\$ – DoxyLover Sep 19 '14 at 6:40
  • \$\begingroup\$ 8085 instructions IN (0xDB) and OUT (0xD3) read and write the I/O address space. \$\endgroup\$ – MarkU Sep 19 '14 at 6:57
2
\$\begingroup\$

The 8085 has different instructions for accessing main memory and I/O 'memory'. In addition to the standard memory interface pins the 8085 also provides a pin that identifies whether a memory access cycle is accessing main or I/O. This extra line is used in the select logic of both main and I/O 'memory'.

But there is no law that I/O can only be accessed by I/O instructions: in a small system the highest address line could be used to distinguish between memory (a15=0) and I/O (a15=1), so we get 32Kb for real memory (ROM and RAM) and 32 Kb for I/O.

Note that it is even possible to use the I/O addresses to access RAM, but that is less useful because there are only 256 I/O addresses and the addressing modes available for these addresses are very limited.

\$\endgroup\$
  • \$\begingroup\$ Does the microprocessor literally has 64kB of memory that can be accessed by the user ? or it saves some of the memory (for peripheral to be connected). \$\endgroup\$ – Shivam Saxena Sep 19 '14 at 16:55
  • \$\begingroup\$ All of the operations described are accessed via 8085 program instructions. You can "ask" for any memory or I/O location you want. The hardware design dictates whether you'll find anything there when you access it. \$\endgroup\$ – gbarry Sep 19 '14 at 17:41
  • \$\begingroup\$ @Shivam the up does not 'have' any memory, it can address 2^16 bytes of rom/ram/io, plus 2^8 bytes of io. How you divide that 2^16 over ROM, RAM and IO is up to the hardware designer. The chip doesn't care. \$\endgroup\$ – Wouter van Ooijen Sep 19 '14 at 18:33
-1
\$\begingroup\$

Memory mapped :memory mapped is 16 bit address provide for I/o devices &control signals are MEMR and MEMW. data transfer is any registered and I/O. memory related instruction -ex :STA, CDA, MOV

\$\endgroup\$
  • 1
    \$\begingroup\$ Please re-write this answer more clearly. As it is written now, your answer is illegible. \$\endgroup\$ – Robherc KV5ROB Feb 1 '16 at 16:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.