| 32-8 = 24, so 24 rightmost bits are reserved for network. |
Actually that's backwards, the /8 means that 8 bits are reserved for the network and the remaining 24 are for the host.
| So the mask would be 255.0.0.0 right? |
If the entire block was a single subnet then yes, but in this case the network is being divided into 500 subnets. To represent 500 values you need 9 bits, because 2^9 = 512. So your subnet mask actually needs to cover the first 8+9 bits of the address.
126.96.36.199: 0001 0000 0000 0000 0000 0000 0000 0000
nnnn nnnn ssss ssss shhh hhhh hhhh hhhh
So this leaves you with 15 bits for the host. The n is your fixed network part, the s is your internal network part and the h is your host part.
So nnnn nnnn is fixed as 0001 0000. The ssss ssss s can vary from 0000 0000 0 to 1111 1111 1, and that defines the subnet number. The hhh hhhh hhhh hhhh part can vary from 000 0000 0000 0000 to 111 1111 1111 1111, and that defines the host part.
When h is all 1's you have a broadcast address, which shouldn't be assigned, so I would assume that the last address that your question is looking for is actually h's = 111 1111 1111 1110.
The part I can't quite remember is whether or not you need to reserve the address where h is all 0's.