The numbers 8 and 9 are not used for a transponder number because the system, which is quite old, is base 8. Only numbers from 0-7 are ever used.
We have real problems in the US because of the large number of flights in the air at one time and the limited number of discrete codes available (I believe there are only 4,096 available at a time).
MoodyBlu
but it really isn't that bad: what they do is give a controller a set of local codes, say 100 of them. His neighbor sectors get similar, but different codes. These are codes he assigns to random pop-up traffic requesting advisories.
When an aircraft is on a longer trip (files a flight plan, or otherwise indicates to the controller a distant destination), the code assigned is from a different, and more globally appropriate code group.
And the other aspect to this: 90%+ of air traffic is regular old VFR not requiring a specific code, and thus ALL these aircraft share the 1200 code.
Interesting information! One hardly ever sees base 8 numbers anymore since they do not fit evenly into 8, 16, and 32 bits.
They've made the problem worse, by requiring that every little aircraft within about 30 mi of DC has to have a squawk code, even if it's not entering Bravo airspace.