What is the difference between an io port, a register and memory location?
A register is located on the CPU chip. This is the fastest of all memory locations. It is also the most expensive. There are only a few registers on the CPU chip. The simulator has only four general purpose and three special purpose registers. RAM memory is located on plug-in modules. RAM memory is much cheaper than CPU memory and it has a much greater capacity. It is also a lot slower than CPU based memory. RAM usually has its own dedicated bus connecting it to the CPU chip. This is faster than the main system bus. Ports are located on plug-in expansion cards (or might be integrated onto the mother board). These are similar to RAM locations but they have a special purpose. As well as storing data, they interface the data to the outside world. Ports are slower than RAM because they rely on data transferred across the relatively slow system bus.