Computer memory locations have addresses.
Computer Input/Output I/O ports have addresses too.
The addresses start at zero and go up to 4 000 000 000 or more. (Some types
of computer have negative addresses too.)
Each memory location or I/O port has its own unique address.
- MEMORY MAPPING
Memory locations are used for I/O instead of data storage.
Hardware devices can be located at memory particular addresses.
Writing data to the correct address address sends the data to the hardware
device.
The processor uses a control bus wire to determine if the data goes to a memory
location or an I/O port.
The processor uses another control bus wire to determine if data is being
written to the address or read from the address.
- I/O MAPPING
Each I/O port has a port number.
Writing data to the correct port number sends the data to the appropriate
I/O device.
The processor uses a control bus wire to determine if the data goes to a memory
location or an I/O port.
The processor uses another control bus wire to determine if data is being
written to the port or read from the port.
Address Decoder
For example the printer port in an IBM compatible personal computers is located
at 378 (hexadecimal) 888 (decimal). In
binary, this address is 0000 0011 0111 1000. The circuit below
decodes this address. That means it responds to this address and to no other
address. Hexadecimal numbers are often preceeded by "0x". So the printer
port is located at address 0x0378.
