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:
1 | 6 | |||
2 | 7 | |||
3 | 8 | |||
4 | 9 | |||
5 | 10 |
As soon we have reach our maximum number of fingers, we need a second pair of hands to continue to count:
10 | ||
11 | ||
12 | ||
13 |
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.