You must beat the MossDeep City gym to use the HM for Dive.
i think you get to the underwater cavern after beating the 7th gym leader
Steaven gives it to you at mossdeep city, go to his house after you beat the gym and he will give it to you.
after you beat mossdeep gym talk to steven go to steven's house in moss deep town
Steven gives it to you in mossdeep city. You have to beat the mossdeep gym before you can use it. They are Psychic types so be careful.
unova
Get Kyogre..
im not sure which but u hav to beat a gym leader
Dive is obtained from defeating Tate and Liza at Mossdeep City's Gym.
To defeat or "beat" the 7th gym leader in Pokemon sapphire there twins and they have a solrock and a lunatone to beat them I suggest about level 40-50 water types.
Swampert.
after you beat flannery you go back to where your dads gym is and beat that gym hope it helped :p
on Mosdeep island ,steven gives you after difeating the gym leader