Assembly is just a representation of bytes to make them readable for you. Without AOB scan you basically inject you code always to the same location in the DLL for example. In Cosmos or CE scripts its usually something like
//assembly code here
Now if the game.dll is different for example due to a patch. The location you want to inject to might not be at +500 but at +700. Writing still to +500 causes a crash as you overwrite the wrong code with your injection.
AOB scan uses the fact that assembly is representation of bytes. It takes the bytes (of the instructions / assembly) around your injection spot until its unique. Then it scans the game.dll for this pattern. If the dll changes and your code is now at +700, AOB scan finds it and injects there.
For assembly coding you have to understand the most common mnemonics like MOV, CMP, FLD, etc. which you can find for example here: Link
and you have to understand what debugger registers (AX/EAX/RAX) are and how they are used and like most languages you learn it the best way by reading. Take game of your choice, use the debugger to find the game function you are interested it and then try to read what each assembly line does. Once you can read it, you know how to modify it. At the beginning you have to often look up something but that's fine. The more you are using it, the less you need to look up.
If you are completely new and don't know where to start make it easy and take a Youtobe tutorial of someone doing such a thing "live". Then redo his steps, just to get the feeling. At the end of the video, redo again but this time without the video. Repeat until you feel safe. Try to adopt the way on another game. You may fail, take a different game then. The older the game, the easier they are to cheat.