In these cases, the 12-bit address identifies a particular I/O device. Show the program execution (using the format of Figure 3.5) for the following program: 1. Load AC from device 5. 2. Add contents of memory location 940. 3. Store AC to device 6.
Assume that the next value retrieved from device 5 is 3 and that location 940 contains a value of 2.
[pic]
3.4 Consider a hypothetical microprocessor generating a 16-bit address (for example, assume that the program counter and the address registers are 16-bits wide) and having a 16-bit data bus.
a. What is the maximum memory address space that the process can access directly if it is connected to a 16-bit memory?
In this case, it can address 216 slots of memory. If each memory location has 16-bits then the amount of space that can be accessed directly is 216 x 2 bytes = 128 Kbytes.
b. What is the maximum memory address space that the process can access directly if it is connected to a 8-bit memory? It can address 28 slots of memory. If each memory location has 8-bits then the amount of space that can be accessed directly is 216 x 1 byte = 64 Kbytes.
c. What architectural features will allow this microprocessor to access a separate “I/O space?”
Separate I/O instructions are needed (opcodes), whose execution will generate reads and writes to the I/O devices. A separate line for I/O could be an answer as well.
d. If an input and an output instruction can specify an 8-bit I/O port number, how many 8-bit ports can the microprocessor support? How many 16-bit I/O ports? Explain.
For 8-bit port number, it can support 28 = 256 ports. For a 16-bit port number it should support the same amount since the instruction specifies an 8-bit port number. For those who might have misunderstood the question thinking that the instruction