Memory-Mapped IO
this part of the address space is not occupied by memory;
instead reads and writes to addresses in this area will interact with registers in the
input-output devices in order determine their status or cause them to take actions.
As an example, let's talk a little about a robot program that we'll play with later
- by writing into one particular address, you set the speed of the robot to a value in the range 0 .. 4
- there are two addresses that let you set its direction
- another pair of addresses will give you the current X and Y coordinates of the robot
- that's enough to let you drive it around in a rectangular path on the screen
A real computer controls disk drives, network interfaces, printers, keyboards, and mice this same way.