IEEE 754 uses normalized representation by default. i.e., it adds an implicit 1 to the left of mantissa (before "."). But normalization has a problem as it means, the smallest positive number that can be represented is
$1.0 \times 2^{0 - \text{bias}}$ and bias is 127 which gives $1.0 \times 2^{-127}$.
To allow smaller numbers than this we need to use denormalized representation. To incorporate this, all 0 exponent (and non-zero mantissa) is taken for denormalized representation. That is, if all the exponent bits are 0s, there will be no implied 1. Moreover normalized representation can no longer have all 0s as exponent- the smallest positive number in normalized representation now becomes
$1.0 \times 2^{1 - \text{bias}}$ and bias is 127 which gives $1.0 \times 2^{-126}$.
Now, in denormalized representation, exponent is fixed- all 0's and we add a bias of "-126". Now, we have all 23 bits for mantissa. The smallest positive number than can be represented becomes (the last mantissa bit is 1)
$1.0 \times 2^{-23} \times 2^{-126} = 1.0 \times 2^{-149}$.
http://steve.hollasch.net/cgindex/coding/ieeefloat.html