whicever bus you use to conect to a peripheral, the CUP must identify each so data and instructions dont cross paths. this identification is obtained by using two values that are assigned to the device:

Interrupt Request (IRQ) Line
Input/Output (I/O) address

an interrupt is a signal that a device generates to inform the CPU that it requires the processor's attention. for peripherals, this is implemented through IRQ channels. which are numbed 0 to 15. if two of your devices try to use the same IRQ, a conflict occurs and neither device works. some devices, however, can share IRQs if they are configured to do so.

each device must also have a small area of RAM set aside where the CPU can pass information to and received information from the device. this portion of memory is known as the I/O Address. and it must also be unique for each device. IO addresses are written in hexadecimal notation. example: 0x300-31f

on older devices using ISA, you often had to manually configure the IRQ an IO address to get a device to work. most peripherals you buy today use the PCI bus and support a system called plug-and-play. PnP will automatically assign the correct IRQ. IO address and DMA channel. for PnP to work properly, the BIOS and operating system must support it. PnP support is standard on most computer no a days like Linux