You need to determine if the joists are moving or if the flooring is just seperated from the joists (Most joists will have a bow in them so if the floor isn't nailed to it you'll see a gap between the joist and the flooring when you look at the seam from below.)
If the joists themselves are flexing then you'll probably want to sister them (the floor should have some bounce - Otherwise they'll be "hard" floors which are uncomfortable to walk on..)
Once you figure out/fix the joist situation I'd get a power screw driver and run long screws from beneath, through the joists at a 45 degree angle and into the flooring so that the flooring is held down from below.
The first few will take some trial and error testing. You want to make sure you get through the sub-flooring but not so far that you go all the way through the hardwood flooring above it.
If you try nailing from above you'd either have to take the entire floor apart to do it properly or you are going to end up with hundreds of nailheads showing in your floor.
Using the screws would be the same process as you'd use to fix a squeaky floor.
http://www.handymanusa.com/questions/floorsqueaksq.html