You are on page 1of 2

Lab No 11

USMAN INSTITUTE OF TECHNOLOGY


Department of Computer Science
Computer Organization & Assembly Language – CS223

11
Instructor: Muhammad Wasim
Semester: BS – IV

Objective:

Processor input / output (memory mapped I/O using simulator).

Name of Student: _____________________________________________

Roll No: ______________________________Sec. __________

Date of Experiment: ___________________________________________

Marks Obtained/Remarks: _____________________________

Signature: _____________________________

1
Lab No 11

Theory
Memory mapped I /O simply means that the microprocessor does not differentiate between I /O devices and
memory devices and so data transfer between the processor and I / O device can take place through the same
instructions as those for memory e.g. MOV.

Isolate I / O on the other hand differentiates between a memory address and an I / O address and so memory
data transfer instructions are different from data transfer instructions requiring an I/ O address.

How does the microprocessor differentiate between an I / O address and a memory address? It does that by the
use of an additional signal IO / M on the 8085. If A0-A7 represent an I / O address, IO / M is signaled logic 1 by
the microprocessor and vice versa. This IO / M logic 1 is signal to the external devices connected to the processor
that the A0 –A7 is an I/O address rather than a memory address.

In memory mapped I / O there is no need to decode the IO / M line because all addresses are treated as memory
addresses. So data can transfer through I/O and memory using the same instruction MOV.

Do It Yourself

Q1) What is the function of IO/ M line of the processor?

Q2) IN which addressing scheme is the IO /M line used? Why?

Q3) Can we use memory mapped I / O on the 8086?

Q4)
Write an assembly language program that stores A=10 in memory location 100
and B= 20 in memory location 200 and a C=30 in memory location 300.

It then reads location 100 , masks bits 0 and 1. If the result > 7 it stores a 20 in
location 400. Else it stores a 0.

You might also like