It was coded in C++ by the developers, but there has never been a released source of it (and there never will be).
The GBA uses the ARM7TDMI (A.K.A. ARMv4TM) CPU. You'll need to know an ASM called ARM; specifically, the branch of ASM that 'T' variants of ARM CPUs have called Thumb. You can see the Thumb instruction set either on my Fusion notes or on GBATEK (the almighty GBA reference). It's very occasional that GBA games uses the full 32-bit ARM instruction set, normally it's used during execution in the RAM for things like interrupt handlers, but there's a reference for that on my notes and GBATEK too