Compiling an ASM routine is fairly easy.
First, get HackMew's ASM Compiler here.
https://www.pokecommunity.com/threads/117917
In that post, go to the Having fun with ASM tab and download the thumb.zip file.
Make a folder on the desktop and extract the contents into it.
Now make a .txt file with any name you want, then change the extention to .asm
Open the file with Notepad (Notepad++ is what i use) and either copy and paste the code, or manually rewrite it.
Next, goto the windows buttton on your taskbar.
In the searchbar type cmd.exe and hit enter.
In the command prompt, type cd Desktop
You should then be on the desktop, then type in cd FolderName.
FolderName is the name of the folder you extracted ALL of the files in thumb.zip to.
So if you named the folder you put the contents of thumb.zip in ASM, you would type
cd ASM
Next, type thumb.bat ASMFileName.asm
ASMFileName being the file name of the .asm file you want to compile, so if you named it routine.asm, you would type this in the command prompt, thumb.bat routine.asm
If it compiles succesfully, you should see a .bin file with the same name of your asm file there. DO NOT delete the bin file.
Take a Hex Editor, open the .bin file, and copy and paste ALL of the hex into free space on the rom (free space starts at 0x800000). Do a paste write, not a paste insert. Paste Insert will change the size of the rom and break it. Change any pointers as needed, ONLY change pointers if kearnseyboy said to in his tutorial. If he did, go to that location and do this.
Take the starting offset of your newly added ASM routine. Reverse it.
For example, if you put it in at 0x805030, it would be 30 50 80. Add an 08 at the end.
If he says to add +1 to the pointer, instead of 30 50 80 08, it would be 31 50 80 08.
Save the file, and test it. If you have any questions i will be glad to answer!