Your basic disassembler will blindly convert binary to opcodes using the info contained in the links above.
More advanced ones will start adding in pseudo instructions and the ability to set reference values for memory
I don't have a good one for GB/GBC right now but generally if you have something like copy into memory FFFF and your commands are only 16 bits long you are not going to do it all in one opcode. Your (dis)assembler can happily do either a shift or a rotate to get things where they need to be and then a second instruction to fill the remaining bits, more useful in an assembler but worth knowing about.
Equally if said location is known it is nicer to type #health_location than it is #C0F0 or something, especially as it will then throw an error if you type #health_lcoation but blindly carry on should you put #C0E0. It also helps with branches -- if you find the routine for game and note it over then scanning through the game if it branches to #game_over_routine then you can play with that if it is what you are doing.
If your system does not have a NOP then you might with to try detecting them.
If you want to do bounds checking ( http://bgb.bircd.org/pandocs.htm#memorymap
) then you can do that too.
After that you can then start going into https://www.hex-rays.com/products/ida/
territory if you like but that is all you if so.