Here is the list of HMs and how to get them. Note: You must defeae gyms and get the badge to use HM attacks outside battle, example surfing on water with Surf.
1) CUT: Go to the Rusturf tunnel and defeat the team aqua/magma grunt. Then go back to Rustboro and visit the houses, one of them should have a person that gives you Cut.
2) FLY: Go in the Weather Institute and battle the team aqua/magma grunts. After going all the way, you will get the weather Pokemon Castform. Then go outside and you rival will battle you, after you will get Fly.
3) SURF: after defeating Flannery in Lavaridge Town (the 4th gym) to back to Petalberg and go in your dad will battle you, after that a guy will come out of next door and give you Surf. OR just go next door.
4) STRENGTH: Use Rock Smash in Rusturf Tunnel and 2 a guy will talk and go to the other side to visit his girlfriend. Go to their house and you will get Strength by talking to one of the people in the house.
5) FLASH: Go to Route 106 (above Dewford) and into the Granite Cave and the guy in front will give you Flash.
6) ROCK SMASH: One of the people in their house in Mauville will give you Rock Smash.
7) DIVE:Go in Mossdeep City and into the Space Station and defeat all the team aquas or magma, I can’t remember =) then help Steven defeat Maxie then visit him in his house in Mossdeep and he will give you Dive.
8) WATERFALL: SORRY, I’m not up to there yet, but I’ll post as soon as I do, promise!