Why is the data bus in most microprocessors bidirectional while the address bus is unidirectional?
Data Bus: These lines are used to send data to memory by output ports and to receive data from memory by input ports. Thus, data bus lines are bi-directional.
Address Bus: On these lines the CPU send out the address of the memory location or I/O port that is to be written to or read from. Here, the communiation is one-way, the address is send from CPU to memory and I/O port and as these lines are unidirectional.