Addressing a Card
In a PC, the CPU is the active component,
controlling all other parts.
For that, it is required, that each component can be identified
WITHOUT interference of other components. This is done by
assigning a UNIQUE address (Think about it
like a discussion in a group of people: when you ask the
question: "John, how are you doing ?" and there is more
than one "John" in the group, you would get most
probably simultaneously an answer from multiple persons, which
you then would not understand. It is the same with computers)
Addresses in a PC are numbers, but in PC's it is custom to
express such addresses in a special method: "Hexadecimal".
To explain that, lets first see, how humans are counting, which
is based on having 10 fingers on 2 hands:
As soon we have reach our maximum number of
fingers, we need a second pair of hands to continue to count:
and it continues. Staring at 99/100, a third
pair of hands is required.
But computers do NOT have hands with fingers, they work with
electricity, which is either on or off.
Lets continue with the pictures of a hand, but lest use only 1
thumb of 1 hand, which is:
 |
UP: Power ON |
 |
Down: Power OFF |
Such an item with status ON/OFF is called: a BIT.
Numbers expressed in "Bits" are "Binary" number.
Lets count now again, and you see, we need a lot of additional
thumbs:
| |
|
|
|
|
|
|
|
|
Counting
"Binary" |
Counting
Decimal |
| |
|
|
|
|
|
|
|
 |
1 |
1 |
| |
|
|
|
|
|
 |
|
 |
10 |
2 |
| |
|
|
|
|
|
 |
|
 |
11 |
3 |
| |
|
|
|
 |
|
 |
|
 |
100 |
4 |
| |
|
|
|
 |
|
 |
|
 |
101 |
5 |
| |
|
|
|
 |
|
 |
|
 |
110 |
6 |
| |
|
|
|
 |
|
 |
|
 |
111 |
7 |
| |
|
 |
|
 |
|
 |
|
 |
1000 |
8 |
| |
|
 |
|
 |
|
 |
|
 |
1001 |
9 |
| |
|
 |
|
 |
|
 |
|
 |
1010 |
10 |
| |
|
 |
|
 |
|
 |
|
 |
1011 |
11 |
| |
|
 |
|
 |
|
 |
|
 |
1100 |
12 |
| |
|
 |
|
 |
|
 |
|
 |
1101 |
13 |
| |
|
 |
|
 |
|
 |
|
 |
1110 |
14 |
| |
|
 |
|
 |
|
 |
|
 |
1111 |
15 |
 |
|
 |
|
 |
|
 |
|
 |
10000 |
16 |
 |
|
 |
|
 |
|
 |
|
 |
10001 |
17 |
 |
|
 |
|
 |
|
 |
|
 |
10010 |
18 |
 |
|
 |
|
 |
|
 |
|
 |
10011 |
19 |
 |
|
 |
|
 |
|
 |
|
 |
10100 |
20 |
 |
|
 |
|
 |
|
 |
|
 |
10101 |
21 |
These binary number are getting quickly very
long and are very difficult to remember, so it is now custom to
express such binary numbers as "hexadecimal" number,
i.e. we combine 4 binary Bits to a single character:
| Binary: |
|
Decimal: |
|
Hexadecimal: |
|
|
| |
0
1
10
11
100
101
110
111
1000
1001 |
|
0
1
2
3
4
5
6
7
8
9 |
|
0
1
2
3
4
5
6
7
8
9 |
| |
1010
1011
1100
1101
1110
1111 |
|
10
11
12
13
14
15 |
|
A
B
C
D
E
F |
Up to the number 9, the counting is the same for
Decimal and Hexadecimal.
But the numbers 10-15 are expressed using the
characters A-F |
1
1
1 |
0000
0001
0010 |
|
16
17
18 |
|
10
11
12 |
|
Hexadecimal numbers are often marked with an 'h' at the end, to
avoid to have them mistaken as decimal numbers ( example: 100h =
256).
Why do we need to take it up with these "hexadecimal"
number ?
Because it has become custom on PC-compatible hardware components
to express the addresses as Hexadecimal numbers !
These hardware addresses are also called:
- Input/Output
Address
- Input/Output Port
- I/O Port
or just:
- Port
You can view the addresses already assigned in your Windows95
system:

There are some defaults:
| 3F8h: |
Serial port COM1 |
| 2F8h: |
Serial port COM2 |
| 3E8h: |
Serial port COM3 |
| 2E8h: |
Serial port COM4 |
For Network cards (NIC's), addresses 300h, 320h
and 340h are most often used.
|